More signed overflow fixes
[deliverable/binutils-gdb.git] / opcodes / ppc-opc.c
CommitLineData
252b5132 1/* ppc-opc.c -- PowerPC opcode list
82704155 2 Copyright (C) 1994-2019 Free Software Foundation, Inc.
252b5132
RH
3 Written by Ian Lance Taylor, Cygnus Support
4
9b201bb5 5 This file is part of the GNU opcodes library.
252b5132 6
9b201bb5
NC
7 This library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
10 any later version.
252b5132 11
9b201bb5
NC
12 It is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
252b5132 16
112290ab 17 You should have received a copy of the GNU General Public License
9b201bb5
NC
18 along with this file; see the file COPYING. If not, write to the
19 Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
252b5132 21
0d8dfecf 22#include "sysdep.h"
df7b86aa 23#include <stdio.h>
252b5132
RH
24#include "opcode/ppc.h"
25#include "opintl.h"
26
27/* This file holds the PowerPC opcode table. The opcode table
28 includes almost all of the extended instruction mnemonics. This
29 permits the disassembler to use them, and simplifies the assembler
30 logic, at the cost of increasing the table size. The table is
31 strictly constant data, so the compiler should be able to put it in
b80c7270 32 the text segment.
252b5132
RH
33
34 This file also holds the operand table. All knowledge about
35 inserting operands into instructions and vice-versa is kept in this
36 file. */
252b5132 37
b80c7270 38/* The functions used to insert and extract complicated operands. */
252b5132 39
b80c7270 40/* The ARX, ARY, RX and RY operands are alternate encodings of GPRs. */
252b5132 41
0f873fd5
PB
42static uint64_t
43insert_arx (uint64_t insn,
44 int64_t value,
b80c7270
AM
45 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
46 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 47{
71553718
AM
48 value -= 8;
49 if (value < 0 || value >= 16)
b80c7270
AM
50 {
51 *errmsg = _("invalid register");
71553718 52 value = 0xf;
b80c7270 53 }
71553718 54 return insn | value;
b80c7270 55}
b9c361e0 56
0f873fd5
PB
57static int64_t
58extract_arx (uint64_t insn,
b80c7270
AM
59 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
60 int *invalid ATTRIBUTE_UNUSED)
61{
62 return (insn & 0xf) + 8;
63}
b9c361e0 64
0f873fd5
PB
65static uint64_t
66insert_ary (uint64_t insn,
67 int64_t value,
b80c7270
AM
68 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
69 const char **errmsg ATTRIBUTE_UNUSED)
70{
71553718
AM
71 value -= 8;
72 if (value < 0 || value >= 16)
b80c7270
AM
73 {
74 *errmsg = _("invalid register");
71553718 75 value = 0xf;
b80c7270 76 }
71553718 77 return insn | (value << 4);
b80c7270 78}
23976049 79
0f873fd5
PB
80static int64_t
81extract_ary (uint64_t insn,
b80c7270
AM
82 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
83 int *invalid ATTRIBUTE_UNUSED)
84{
85 return ((insn >> 4) & 0xf) + 8;
86}
418c1742 87
0f873fd5
PB
88static uint64_t
89insert_rx (uint64_t insn,
90 int64_t value,
b80c7270
AM
91 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
92 const char **errmsg)
93{
94 if (value >= 0 && value < 8)
71553718 95 ;
b80c7270 96 else if (value >= 24 && value <= 31)
71553718 97 value -= 16;
b80c7270
AM
98 else
99 {
100 *errmsg = _("invalid register");
71553718 101 value = 0xf;
b80c7270 102 }
71553718 103 return insn | value;
b80c7270 104}
252b5132 105
0f873fd5
PB
106static int64_t
107extract_rx (uint64_t insn,
b80c7270
AM
108 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
109 int *invalid ATTRIBUTE_UNUSED)
110{
0f873fd5 111 int64_t value = insn & 0xf;
b80c7270
AM
112 if (value >= 0 && value < 8)
113 return value;
114 else
115 return value + 16;
116}
b9c361e0 117
0f873fd5
PB
118static uint64_t
119insert_ry (uint64_t insn,
120 int64_t value,
b80c7270
AM
121 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
122 const char **errmsg)
123{
124 if (value >= 0 && value < 8)
71553718 125 ;
b80c7270 126 else if (value >= 24 && value <= 31)
71553718 127 value -= 16;
b80c7270
AM
128 else
129 {
130 *errmsg = _("invalid register");
71553718 131 value = 0xf;
b80c7270 132 }
71553718 133 return insn | (value << 4);
b80c7270 134}
a680de9a 135
0f873fd5
PB
136static int64_t
137extract_ry (uint64_t insn,
b80c7270
AM
138 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
139 int *invalid ATTRIBUTE_UNUSED)
140{
0f873fd5 141 int64_t value = (insn >> 4) & 0xf;
b80c7270
AM
142 if (value >= 0 && value < 8)
143 return value;
144 else
145 return value + 16;
146}
a680de9a 147
98553ad3
PB
148/* The BA and BB fields in an XL form instruction or the RA and RB fields or
149 VRA and VRB fields in a VX form instruction when they must be the same.
150 This is used for extended mnemonics like crclr. The extraction function
151 enforces that the fields are the same. */
adadcc0c 152
0f873fd5 153static uint64_t
98553ad3
PB
154insert_bab (uint64_t insn,
155 int64_t value,
b80c7270
AM
156 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
157 const char **errmsg ATTRIBUTE_UNUSED)
158{
98553ad3
PB
159 value &= 0x1f;
160 return insn | (value << 16) | (value << 11);
b80c7270 161}
252b5132 162
0f873fd5 163static int64_t
98553ad3 164extract_bab (uint64_t insn,
b80c7270
AM
165 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
166 int *invalid)
167{
98553ad3
PB
168 int64_t ba = (insn >> 16) & 0x1f;
169 int64_t bb = (insn >> 11) & 0x1f;
170
171 if (ba != bb)
b80c7270 172 *invalid = 1;
98553ad3 173 return ba;
b80c7270 174}
19a6653c 175
98553ad3
PB
176/* The BT, BA and BB fields in an XL form instruction when they must all be
177 the same. This is used for extended mnemonics like crclr. The extraction
178 function enforces that the fields are the same. */
a680de9a 179
0f873fd5 180static uint64_t
98553ad3
PB
181insert_btab (uint64_t insn,
182 int64_t value,
183 ppc_cpu_t dialect,
184 const char **errmsg)
b80c7270 185{
98553ad3
PB
186 value &= 0x1f;
187 return (value << 21) | insert_bab (insn, value, dialect, errmsg);
b80c7270 188}
a680de9a 189
0f873fd5 190static int64_t
98553ad3
PB
191extract_btab (uint64_t insn,
192 ppc_cpu_t dialect,
b80c7270
AM
193 int *invalid)
194{
98553ad3
PB
195 int64_t bt = (insn >> 21) & 0x1f;
196 int64_t bab = extract_bab (insn, dialect, invalid);
197
198 if (bt != bab)
b80c7270 199 *invalid = 1;
98553ad3 200 return bt;
b80c7270 201}
252b5132 202
b80c7270
AM
203/* The BD field in a B form instruction when the - modifier is used.
204 This modifier means that the branch is not expected to be taken.
205 For chips built to versions of the architecture prior to version 2
206 (ie. not Power4 compatible), we set the y bit of the BO field to 1
207 if the offset is negative. When extracting, we require that the y
208 bit be 1 and that the offset be positive, since if the y bit is 0
209 we just want to print the normal form of the instruction.
210 Power4 compatible targets use two bits, "a", and "t", instead of
211 the "y" bit. "at" == 00 => no hint, "at" == 01 => unpredictable,
212 "at" == 10 => not taken, "at" == 11 => taken. The "t" bit is 00001
213 in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000
214 for branch on CTR. We only handle the taken/not-taken hint here.
215 Note that we don't relax the conditions tested here when
216 disassembling with -Many because insns using extract_bdm and
217 extract_bdp always occur in pairs. One or the other will always
218 be valid. */
252b5132 219
b80c7270 220#define ISA_V2 (PPC_OPCODE_POWER4 | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
252b5132 221
0f873fd5
PB
222static uint64_t
223insert_bdm (uint64_t insn,
224 int64_t value,
b80c7270
AM
225 ppc_cpu_t dialect,
226 const char **errmsg ATTRIBUTE_UNUSED)
227{
228 if ((dialect & ISA_V2) == 0)
229 {
230 if ((value & 0x8000) != 0)
231 insn |= 1 << 21;
232 }
233 else
234 {
235 if ((insn & (0x14 << 21)) == (0x04 << 21))
236 insn |= 0x02 << 21;
237 else if ((insn & (0x14 << 21)) == (0x10 << 21))
238 insn |= 0x08 << 21;
239 }
240 return insn | (value & 0xfffc);
241}
252b5132 242
0f873fd5
PB
243static int64_t
244extract_bdm (uint64_t insn,
b80c7270
AM
245 ppc_cpu_t dialect,
246 int *invalid)
247{
248 if ((dialect & ISA_V2) == 0)
249 {
250 if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
251 *invalid = 1;
252 }
253 else
254 {
255 if ((insn & (0x17 << 21)) != (0x06 << 21)
256 && (insn & (0x1d << 21)) != (0x18 << 21))
257 *invalid = 1;
258 }
252b5132 259
b80c7270
AM
260 return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
261}
989993d8 262
b80c7270
AM
263/* The BD field in a B form instruction when the + modifier is used.
264 This is like BDM, above, except that the branch is expected to be
265 taken. */
252b5132 266
0f873fd5
PB
267static uint64_t
268insert_bdp (uint64_t insn,
269 int64_t value,
b80c7270
AM
270 ppc_cpu_t dialect,
271 const char **errmsg ATTRIBUTE_UNUSED)
272{
273 if ((dialect & ISA_V2) == 0)
274 {
275 if ((value & 0x8000) == 0)
276 insn |= 1 << 21;
277 }
278 else
279 {
280 if ((insn & (0x14 << 21)) == (0x04 << 21))
281 insn |= 0x03 << 21;
282 else if ((insn & (0x14 << 21)) == (0x10 << 21))
283 insn |= 0x09 << 21;
284 }
285 return insn | (value & 0xfffc);
286}
989993d8 287
0f873fd5
PB
288static int64_t
289extract_bdp (uint64_t insn,
b80c7270
AM
290 ppc_cpu_t dialect,
291 int *invalid)
292{
293 if ((dialect & ISA_V2) == 0)
294 {
295 if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
296 *invalid = 1;
297 }
298 else
299 {
300 if ((insn & (0x17 << 21)) != (0x07 << 21)
301 && (insn & (0x1d << 21)) != (0x19 << 21))
302 *invalid = 1;
303 }
252b5132 304
b80c7270
AM
305 return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
306}
252b5132 307
b80c7270 308static inline int
0f873fd5 309valid_bo_pre_v2 (int64_t value)
b80c7270
AM
310{
311 /* Certain encodings have bits that are required to be zero.
312 These are (z must be zero, y may be anything):
313 0000y
314 0001y
315 001zy
316 0100y
317 0101y
318 011zy
319 1z00y
320 1z01y
321 1z1zz
322 */
323 if ((value & 0x14) == 0)
aae9718e 324 /* BO: 0000y, 0001y, 0100y, 0101y. */
b80c7270
AM
325 return 1;
326 else if ((value & 0x14) == 0x4)
aae9718e 327 /* BO: 001zy, 011zy. */
b80c7270
AM
328 return (value & 0x2) == 0;
329 else if ((value & 0x14) == 0x10)
aae9718e 330 /* BO: 1z00y, 1z01y. */
b80c7270
AM
331 return (value & 0x8) == 0;
332 else
aae9718e 333 /* BO: 1z1zz. */
b80c7270
AM
334 return value == 0x14;
335}
989993d8 336
b80c7270 337static inline int
0f873fd5 338valid_bo_post_v2 (int64_t value)
b80c7270
AM
339{
340 /* Certain encodings have bits that are required to be zero.
341 These are (z must be zero, a & t may be anything):
342 0000z
343 0001z
344 001at
345 0100z
346 0101z
347 011at
348 1a00t
349 1a01t
350 1z1zz
351 */
352 if ((value & 0x14) == 0)
aae9718e 353 /* BO: 0000z, 0001z, 0100z, 0101z. */
b80c7270
AM
354 return (value & 0x1) == 0;
355 else if ((value & 0x14) == 0x14)
aae9718e 356 /* BO: 1z1zz. */
b80c7270 357 return value == 0x14;
aae9718e
PB
358 else if ((value & 0x14) == 0x4)
359 /* BO: 001at, 011at, with "at" == 0b01 being reserved. */
360 return (value & 0x3) != 1;
361 else if ((value & 0x14) == 0x10)
362 /* BO: 1a00t, 1a01t, with "at" == 0b01 being reserved. */
363 return (value & 0x9) != 1;
b80c7270
AM
364 else
365 return 1;
366}
c168870a 367
b80c7270 368/* Check for legal values of a BO field. */
252b5132 369
b80c7270 370static int
0f873fd5 371valid_bo (int64_t value, ppc_cpu_t dialect, int extract)
b80c7270
AM
372{
373 int valid_y = valid_bo_pre_v2 (value);
374 int valid_at = valid_bo_post_v2 (value);
b9c361e0 375
b80c7270
AM
376 /* When disassembling with -Many, accept either encoding on the
377 second pass through opcodes. */
378 if (extract && dialect == ~(ppc_cpu_t) PPC_OPCODE_ANY)
379 return valid_y || valid_at;
380 if ((dialect & ISA_V2) == 0)
381 return valid_y;
382 else
383 return valid_at;
384}
a5721ba2 385
b80c7270
AM
386/* The BO field in a B form instruction. Warn about attempts to set
387 the field to an illegal value. */
252b5132 388
0f873fd5
PB
389static uint64_t
390insert_bo (uint64_t insn,
391 int64_t value,
b80c7270
AM
392 ppc_cpu_t dialect,
393 const char **errmsg)
394{
395 if (!valid_bo (value, dialect, 0))
396 *errmsg = _("invalid conditional option");
aae9718e
PB
397 else if (PPC_OP (insn) == 19
398 && (((insn >> 1) & 0x3ff) == 528) && ! (value & 4))
b80c7270
AM
399 *errmsg = _("invalid counter access");
400 return insn | ((value & 0x1f) << 21);
401}
a680de9a 402
0f873fd5
PB
403static int64_t
404extract_bo (uint64_t insn,
b80c7270
AM
405 ppc_cpu_t dialect,
406 int *invalid)
407{
0f873fd5 408 int64_t value = (insn >> 21) & 0x1f;
b80c7270
AM
409 if (!valid_bo (value, dialect, 1))
410 *invalid = 1;
411 return value;
412}
252b5132 413
aae9718e
PB
414/* For the given BO value, return a bit mask detailing which bits
415 define the branch hints. */
416
417static int64_t
418get_bo_hint_mask (int64_t bo, ppc_cpu_t dialect)
419{
420 if ((dialect & ISA_V2) == 0)
421 {
422 if ((bo & 0x14) != 0x14)
423 /* BO: 0000y, 0001y, 001zy, 0100y, 0101y, 011zy, 1z00y, 1z01y . */
424 return 1;
425 else
426 /* BO: 1z1zz. */
427 return 0;
428 }
429 else
430 {
431 if ((bo & 0x14) == 0x4)
432 /* BO: 001at, 011at. */
433 return 0x3;
434 else if ((bo & 0x14) == 0x10)
435 /* BO: 1a00t, 1a01t. */
436 return 0x9;
437 else
438 /* BO: 0000z, 0001z, 0100z, 0101z, 1z1zz. */
439 return 0;
440 }
441}
442
443/* The BO field in a B form instruction when the + or - modifier is used. */
1ed8e1e4 444
0f873fd5
PB
445static uint64_t
446insert_boe (uint64_t insn,
447 int64_t value,
b80c7270 448 ppc_cpu_t dialect,
aae9718e
PB
449 const char **errmsg,
450 int branch_taken)
b80c7270 451{
aae9718e
PB
452 int64_t implied_hint;
453 int64_t hint_mask = get_bo_hint_mask (value, dialect);
252b5132 454
aae9718e
PB
455 if (branch_taken)
456 implied_hint = hint_mask;
457 else
458 implied_hint = hint_mask & ~1;
459
460 /* The branch hint bit(s) in the BO field must either be zero or exactly
461 match the branch hint bits implied by the '+' or '-' modifier. */
462 if (implied_hint == 0)
463 *errmsg = _("BO value implies no branch hint, when using + or - modifier");
464 else if ((value & hint_mask) != 0
465 && (value & hint_mask) != implied_hint)
466 {
467 if ((dialect & ISA_V2) == 0)
468 *errmsg = _("attempt to set y bit when using + or - modifier");
469 else
470 *errmsg = _("attempt to set 'at' bits when using + or - modifier");
471 }
472
473 value |= implied_hint;
474
475 return insert_bo (insn, value, dialect, errmsg);
b80c7270 476}
252b5132 477
0f873fd5
PB
478static int64_t
479extract_boe (uint64_t insn,
b80c7270 480 ppc_cpu_t dialect,
aae9718e
PB
481 int *invalid,
482 int branch_taken)
b80c7270 483{
0f873fd5 484 int64_t value = (insn >> 21) & 0x1f;
aae9718e
PB
485 int64_t implied_hint;
486 int64_t hint_mask = get_bo_hint_mask (value, dialect);
487
488 if (branch_taken)
489 implied_hint = hint_mask;
490 else
491 implied_hint = hint_mask & ~1;
492
493 if (!valid_bo (value, dialect, 1)
494 || implied_hint == 0
495 || (value & hint_mask) != implied_hint)
b80c7270 496 *invalid = 1;
aae9718e
PB
497 return value;
498}
499
500/* The BO field in a B form instruction when the - modifier is used. */
501
502static uint64_t
503insert_bom (uint64_t insn,
504 int64_t value,
505 ppc_cpu_t dialect,
506 const char **errmsg)
507{
508 return insert_boe (insn, value, dialect, errmsg, 0);
509}
510
511static int64_t
512extract_bom (uint64_t insn,
513 ppc_cpu_t dialect,
514 int *invalid)
515{
516 return extract_boe (insn, dialect, invalid, 0);
517}
518
519/* The BO field in a B form instruction when the + modifier is used. */
520
521static uint64_t
522insert_bop (uint64_t insn,
523 int64_t value,
524 ppc_cpu_t dialect,
525 const char **errmsg)
526{
527 return insert_boe (insn, value, dialect, errmsg, 1);
528}
529
530static int64_t
531extract_bop (uint64_t insn,
532 ppc_cpu_t dialect,
533 int *invalid)
534{
535 return extract_boe (insn, dialect, invalid, 1);
b80c7270 536}
252b5132 537
b80c7270
AM
538/* The DCMX field in a X form instruction when the field is split
539 into separate DC, DM and DX fields. */
252b5132 540
0f873fd5
PB
541static uint64_t
542insert_dcmxs (uint64_t insn,
543 int64_t value,
b80c7270
AM
544 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
545 const char **errmsg ATTRIBUTE_UNUSED)
546{
547 return (insn
548 | ((value & 0x1f) << 16)
549 | ((value & 0x20) >> 3)
550 | (value & 0x40));
551}
252b5132 552
0f873fd5
PB
553static int64_t
554extract_dcmxs (uint64_t insn,
b80c7270
AM
555 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
556 int *invalid ATTRIBUTE_UNUSED)
557{
558 return (insn & 0x40) | ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
559}
252b5132 560
b80c7270
AM
561/* The D field in a DX form instruction when the field is split
562 into separate D0, D1 and D2 fields. */
989993d8 563
0f873fd5
PB
564static uint64_t
565insert_dxd (uint64_t insn,
566 int64_t value,
b80c7270
AM
567 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
568 const char **errmsg ATTRIBUTE_UNUSED)
569{
570 return insn | (value & 0xffc1) | ((value & 0x3e) << 15);
571}
e43de63c 572
0f873fd5
PB
573static int64_t
574extract_dxd (uint64_t insn,
b80c7270
AM
575 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
576 int *invalid ATTRIBUTE_UNUSED)
577{
0f873fd5 578 uint64_t dxd = (insn & 0xffc1) | ((insn >> 15) & 0x3e);
b80c7270
AM
579 return (dxd ^ 0x8000) - 0x8000;
580}
252b5132 581
0f873fd5
PB
582static uint64_t
583insert_dxdn (uint64_t insn,
584 int64_t value,
b80c7270
AM
585 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
586 const char **errmsg ATTRIBUTE_UNUSED)
587{
588 return insert_dxd (insn, -value, dialect, errmsg);
589}
252b5132 590
0f873fd5
PB
591static int64_t
592extract_dxdn (uint64_t insn,
b80c7270 593 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
9cf7e568 594 int *invalid)
b80c7270
AM
595{
596 return -extract_dxd (insn, dialect, invalid);
597}
fdd12ef3 598
8acf1435
PB
599/* The D field in a 64-bit D form prefix instruction when the field is split
600 into separate D0 and D1 fields. */
601
602static uint64_t
603insert_d34 (uint64_t insn,
604 int64_t value,
605 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
606 const char **errmsg ATTRIBUTE_UNUSED)
607{
608 return insn | ((value & 0x3ffff0000ULL) << 16) | (value & 0xffff);
609}
610
611static int64_t
612extract_d34 (uint64_t insn,
613 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
614 int *invalid ATTRIBUTE_UNUSED)
615{
616 int64_t mask = 1ULL << 33;
617 int64_t value = ((insn >> 16) & 0x3ffff0000ULL) | (insn & 0xffff);
618 value = (value ^ mask) - mask;
619 return value;
620}
621
622/* The NSI34 field in an 8-byte D form prefix instruction. This is the same
623 as the SI34 field, only negated. The extraction function always marks it
624 as invalid, since we never want to recognize an instruction which uses
625 a field of this type. */
626
627static uint64_t
628insert_nsi34 (uint64_t insn,
629 int64_t value,
630 ppc_cpu_t dialect,
631 const char **errmsg)
632{
633 return insert_d34 (insn, -value, dialect, errmsg);
634}
635
636static int64_t
637extract_nsi34 (uint64_t insn,
638 ppc_cpu_t dialect,
639 int *invalid)
640{
641 int64_t value = extract_d34 (insn, dialect, invalid);
642 *invalid = 1;
643 return -value;
644}
645
646/* The R field in an 8-byte prefix instruction when there are restrictions
647 between R's value and the RA value (ie, they cannot both be non zero). */
648
649static uint64_t
650insert_pcrel (uint64_t insn,
651 int64_t value,
652 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
653 const char **errmsg)
654{
655 value &= 0x1;
656 int64_t ra = (insn >> 16) & 0x1f;
657 if (ra != 0 && value != 0)
658 *errmsg = _("invalid R operand");
659
660 return insn | (value << 52);
661}
662
663static int64_t
664extract_pcrel (uint64_t insn,
665 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
666 int *invalid)
667{
668 /* If called with *invalid < 0 to return the value for missing
669 operands, *invalid will be the negative count of missing operands
670 including this one. Return a default value of 1 if the PRA0/PRAQ
671 operand was also omitted (ie. *invalid is -2). Return a default
672 value of 0 if the PRA0/PRAQ operand was not omitted
673 (ie. *invalid is -1). */
674 if (*invalid < 0)
675 return ~ *invalid & 1;
676
677 int64_t ra = (insn >> 16) & 0x1f;
678 int64_t pcrel = (insn >> 52) & 0x1;
679 if (ra != 0 && pcrel != 0)
680 *invalid = 1;
681
682 return pcrel;
683}
684
685/* Variant of extract_pcrel that sets invalid for R bit set. The idea
686 is to disassemble "paddi rt,0,offset,1" as "pla rt,offset". */
687
688static int64_t
689extract_pcrel0 (uint64_t insn,
690 ppc_cpu_t dialect,
691 int *invalid)
692{
693 int64_t pcrel = extract_pcrel (insn, dialect, invalid);
694 if (pcrel)
695 *invalid = 1;
696 return pcrel;
697}
698
b80c7270 699/* FXM mask in mfcr and mtcrf instructions. */
adadcc0c 700
0f873fd5
PB
701static uint64_t
702insert_fxm (uint64_t insn,
703 int64_t value,
b80c7270
AM
704 ppc_cpu_t dialect,
705 const char **errmsg)
706{
707 /* If we're handling the mfocrf and mtocrf insns ensure that exactly
708 one bit of the mask field is set. */
709 if ((insn & (1 << 20)) != 0)
710 {
711 if (value == 0 || (value & -value) != value)
712 {
713 *errmsg = _("invalid mask field");
714 value = 0;
715 }
716 }
252b5132 717
b80c7270
AM
718 /* If only one bit of the FXM field is set, we can use the new form
719 of the instruction, which is faster. Unlike the Power4 branch hint
720 encoding, this is not backward compatible. Do not generate the
721 new form unless -mpower4 has been given, or -many and the two
722 operand form of mfcr was used. */
723 else if (value > 0
724 && (value & -value) == value
725 && ((dialect & PPC_OPCODE_POWER4) != 0
726 || ((dialect & PPC_OPCODE_ANY) != 0
727 && (insn & (0x3ff << 1)) == 19 << 1)))
728 insn |= 1 << 20;
252b5132 729
b80c7270
AM
730 /* Any other value on mfcr is an error. */
731 else if ((insn & (0x3ff << 1)) == 19 << 1)
732 {
733 /* A value of -1 means we used the one operand form of
734 mfcr which is valid. */
735 if (value != -1)
736 *errmsg = _("invalid mfcr mask");
737 value = 0;
738 }
252b5132 739
b80c7270
AM
740 return insn | ((value & 0xff) << 12);
741}
1f6c9eb0 742
0f873fd5
PB
743static int64_t
744extract_fxm (uint64_t insn,
b80c7270
AM
745 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
746 int *invalid)
747{
9cf7e568
AM
748 /* Return a value of -1 for a missing optional operand, which is
749 used as a flag by insert_fxm. */
750 if (*invalid < 0)
751 return -1;
252b5132 752
9cf7e568 753 int64_t mask = (insn >> 12) & 0xff;
b80c7270
AM
754 /* Is this a Power4 insn? */
755 if ((insn & (1 << 20)) != 0)
756 {
757 /* Exactly one bit of MASK should be set. */
758 if (mask == 0 || (mask & -mask) != mask)
759 *invalid = 1;
760 }
252b5132 761
b80c7270
AM
762 /* Check that non-power4 form of mfcr has a zero MASK. */
763 else if ((insn & (0x3ff << 1)) == 19 << 1)
764 {
765 if (mask != 0)
766 *invalid = 1;
767 else
768 mask = -1;
769 }
989993d8 770
b80c7270
AM
771 return mask;
772}
cee62821 773
0f873fd5
PB
774static uint64_t
775insert_li20 (uint64_t insn,
776 int64_t value,
b80c7270
AM
777 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
778 const char **errmsg ATTRIBUTE_UNUSED)
779{
780 return (insn
781 | ((value & 0xf0000) >> 5)
782 | ((value & 0x0f800) << 5)
783 | (value & 0x7ff));
784}
a680de9a 785
0f873fd5
PB
786static int64_t
787extract_li20 (uint64_t insn,
b80c7270
AM
788 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
789 int *invalid ATTRIBUTE_UNUSED)
790{
f143cb5f
AM
791 return ((((insn << 5) & 0xf0000)
792 | ((insn >> 5) & 0xf800)
793 | (insn & 0x7ff)) ^ 0x80000) - 0x80000;
b80c7270 794}
e3c2f928 795
b80c7270
AM
796/* The 2-bit L field in a SYNC or WC field in a WAIT instruction.
797 For SYNC, some L values are reserved:
798 * Value 3 is reserved on newer server cpus.
799 * Values 2 and 3 are reserved on all other cpus. */
adadcc0c 800
0f873fd5
PB
801static uint64_t
802insert_ls (uint64_t insn,
803 int64_t value,
b80c7270
AM
804 ppc_cpu_t dialect,
805 const char **errmsg)
806{
807 /* For SYNC, some L values are illegal. */
808 if (((insn >> 1) & 0x3ff) == 598)
809 {
0f873fd5 810 int64_t max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1;
b80c7270 811 if (value > max_lvalue)
71553718 812 *errmsg = _("illegal L operand value");
b80c7270 813 }
1f6c9eb0 814
b80c7270
AM
815 return insn | ((value & 0x3) << 21);
816}
b9c361e0 817
0f873fd5
PB
818static int64_t
819extract_ls (uint64_t insn,
b80c7270
AM
820 ppc_cpu_t dialect,
821 int *invalid)
822{
9cf7e568
AM
823 /* Missing optional operands have a value of zero. */
824 if (*invalid < 0)
825 return 0;
b9c361e0 826
9cf7e568 827 uint64_t lvalue = (insn >> 21) & 3;
b80c7270
AM
828 if (((insn >> 1) & 0x3ff) == 598)
829 {
0f873fd5 830 uint64_t max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1;
b80c7270
AM
831 if (lvalue > max_lvalue)
832 *invalid = 1;
833 }
834 return lvalue;
835}
b9c361e0 836
b80c7270
AM
837/* The 4-bit E field in a sync instruction that accepts 2 operands.
838 If ESYNC is non-zero, then the L field must be either 0 or 1 and
839 the complement of ESYNC-bit2. */
b9c361e0 840
0f873fd5
PB
841static uint64_t
842insert_esync (uint64_t insn,
843 int64_t value,
9cf7e568 844 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270
AM
845 const char **errmsg)
846{
0f873fd5 847 uint64_t ls = (insn >> 21) & 0x03;
b9c361e0 848
9cf7e568
AM
849 if (value != 0
850 && ((~value >> 1) & 0x1) != ls)
b80c7270 851 *errmsg = _("incompatible L operand value");
b9c361e0 852
b80c7270
AM
853 return insn | ((value & 0xf) << 16);
854}
b9c361e0 855
0f873fd5
PB
856static int64_t
857extract_esync (uint64_t insn,
9cf7e568 858 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270
AM
859 int *invalid)
860{
8acf1435 861 /* Missing optional operands have a value of zero. */
9cf7e568
AM
862 if (*invalid < 0)
863 return 0;
b9c361e0 864
9cf7e568
AM
865 uint64_t ls = (insn >> 21) & 0x3;
866 uint64_t value = (insn >> 16) & 0xf;
867 if (value != 0
868 && ((~value >> 1) & 0x1) != ls)
b80c7270 869 *invalid = 1;
9cf7e568 870 return value;
b80c7270 871}
e3c2f928 872
b80c7270
AM
873/* The MB and ME fields in an M form instruction expressed as a single
874 operand which is itself a bitmask. The extraction function always
875 marks it as invalid, since we never want to recognize an
876 instruction which uses a field of this type. */
5817ffd1 877
0f873fd5
PB
878static uint64_t
879insert_mbe (uint64_t insn,
880 int64_t value,
b80c7270
AM
881 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
882 const char **errmsg)
883{
0f873fd5
PB
884 uint64_t uval, mask;
885 long mb, me, mx, count, last;
252b5132 886
b80c7270 887 uval = value;
1f6c9eb0 888
b80c7270
AM
889 if (uval == 0)
890 {
891 *errmsg = _("illegal bitmask");
892 return insn;
893 }
252b5132 894
b80c7270
AM
895 mb = 0;
896 me = 32;
897 if ((uval & 1) != 0)
898 last = 1;
899 else
900 last = 0;
901 count = 0;
252b5132 902
b80c7270
AM
903 /* mb: location of last 0->1 transition */
904 /* me: location of last 1->0 transition */
905 /* count: # transitions */
b9c361e0 906
0f873fd5 907 for (mx = 0, mask = (uint64_t) 1 << 31; mx < 32; ++mx, mask >>= 1)
b80c7270
AM
908 {
909 if ((uval & mask) && !last)
910 {
911 ++count;
912 mb = mx;
913 last = 1;
914 }
915 else if (!(uval & mask) && last)
916 {
917 ++count;
918 me = mx;
919 last = 0;
920 }
921 }
922 if (me == 0)
923 me = 32;
252b5132 924
b80c7270
AM
925 if (count != 2 && (count != 0 || ! last))
926 *errmsg = _("illegal bitmask");
252b5132 927
b80c7270
AM
928 return insn | (mb << 6) | ((me - 1) << 1);
929}
252b5132 930
0f873fd5
PB
931static int64_t
932extract_mbe (uint64_t insn,
b80c7270
AM
933 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
934 int *invalid)
935{
0f873fd5
PB
936 int64_t ret;
937 long mb, me;
938 long i;
252b5132 939
b80c7270 940 *invalid = 1;
f5c120c5 941
b80c7270
AM
942 mb = (insn >> 6) & 0x1f;
943 me = (insn >> 1) & 0x1f;
944 if (mb < me + 1)
945 {
946 ret = 0;
947 for (i = mb; i <= me; i++)
0f873fd5 948 ret |= (uint64_t) 1 << (31 - i);
b80c7270
AM
949 }
950 else if (mb == me + 1)
951 ret = ~0;
952 else /* (mb > me + 1) */
953 {
954 ret = ~0;
955 for (i = me + 1; i < mb; i++)
0f873fd5 956 ret &= ~((uint64_t) 1 << (31 - i));
b80c7270
AM
957 }
958 return ret;
959}
aea77599 960
b80c7270
AM
961/* The MB or ME field in an MD or MDS form instruction. The high bit
962 is wrapped to the low end. */
252b5132 963
0f873fd5
PB
964static uint64_t
965insert_mb6 (uint64_t insn,
966 int64_t value,
b80c7270
AM
967 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
968 const char **errmsg ATTRIBUTE_UNUSED)
969{
970 return insn | ((value & 0x1f) << 6) | (value & 0x20);
971}
252b5132 972
0f873fd5
PB
973static int64_t
974extract_mb6 (uint64_t insn,
b80c7270
AM
975 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
976 int *invalid ATTRIBUTE_UNUSED)
977{
978 return ((insn >> 6) & 0x1f) | (insn & 0x20);
979}
252b5132 980
b80c7270
AM
981/* The NB field in an X form instruction. The value 32 is stored as
982 0. */
786e2c0f 983
0f873fd5
PB
984static int64_t
985extract_nb (uint64_t insn,
b80c7270
AM
986 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
987 int *invalid ATTRIBUTE_UNUSED)
988{
0f873fd5 989 int64_t ret;
a47622ac 990
b80c7270
AM
991 ret = (insn >> 11) & 0x1f;
992 if (ret == 0)
993 ret = 32;
994 return ret;
995}
b9c361e0 996
b80c7270
AM
997/* The NB field in an lswi instruction, which has special value
998 restrictions. The value 32 is stored as 0. */
b9c361e0 999
0f873fd5
PB
1000static uint64_t
1001insert_nbi (uint64_t insn,
1002 int64_t value,
b80c7270
AM
1003 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1004 const char **errmsg ATTRIBUTE_UNUSED)
1005{
0f873fd5
PB
1006 int64_t rtvalue = (insn >> 21) & 0x1f;
1007 int64_t ravalue = (insn >> 16) & 0x1f;
b9c361e0 1008
b80c7270
AM
1009 if (value == 0)
1010 value = 32;
1011 if (rtvalue + (value + 3) / 4 > (rtvalue > ravalue ? ravalue + 32
1012 : ravalue))
1013 *errmsg = _("address register in load range");
1014 return insn | ((value & 0x1f) << 11);
1015}
786e2c0f 1016
b80c7270
AM
1017/* The NSI field in a D form instruction. This is the same as the SI
1018 field, only negated. The extraction function always marks it as
1019 invalid, since we never want to recognize an instruction which uses
1020 a field of this type. */
786e2c0f 1021
0f873fd5
PB
1022static uint64_t
1023insert_nsi (uint64_t insn,
1024 int64_t value,
b80c7270
AM
1025 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1026 const char **errmsg ATTRIBUTE_UNUSED)
1027{
1028 return insn | (-value & 0xffff);
1029}
786e2c0f 1030
0f873fd5
PB
1031static int64_t
1032extract_nsi (uint64_t insn,
b80c7270
AM
1033 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1034 int *invalid)
1035{
1036 *invalid = 1;
1037 return -(((insn & 0xffff) ^ 0x8000) - 0x8000);
1038}
786e2c0f 1039
b80c7270
AM
1040/* The RA field in a D or X form instruction which is an updating
1041 load, which means that the RA field may not be zero and may not
1042 equal the RT field. */
786e2c0f 1043
0f873fd5
PB
1044static uint64_t
1045insert_ral (uint64_t insn,
1046 int64_t value,
b80c7270
AM
1047 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1048 const char **errmsg)
1049{
1050 if (value == 0
0f873fd5 1051 || (uint64_t) value == ((insn >> 21) & 0x1f))
b80c7270
AM
1052 *errmsg = "invalid register operand when updating";
1053 return insn | ((value & 0x1f) << 16);
1054}
786e2c0f 1055
0f873fd5
PB
1056static int64_t
1057extract_ral (uint64_t insn,
b80c7270
AM
1058 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1059 int *invalid)
1060{
0f873fd5
PB
1061 int64_t rtvalue = (insn >> 21) & 0x1f;
1062 int64_t ravalue = (insn >> 16) & 0x1f;
fb048c26 1063
b80c7270
AM
1064 if (rtvalue == ravalue || ravalue == 0)
1065 *invalid = 1;
1066 return ravalue;
1067}
a680de9a 1068
b80c7270
AM
1069/* The RA field in an lmw instruction, which has special value
1070 restrictions. */
c0637f3a 1071
0f873fd5
PB
1072static uint64_t
1073insert_ram (uint64_t insn,
1074 int64_t value,
b80c7270
AM
1075 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1076 const char **errmsg)
1077{
0f873fd5 1078 if ((uint64_t) value >= ((insn >> 21) & 0x1f))
b80c7270
AM
1079 *errmsg = _("index register in load range");
1080 return insn | ((value & 0x1f) << 16);
1081}
c0637f3a 1082
0f873fd5
PB
1083static int64_t
1084extract_ram (uint64_t insn,
b80c7270
AM
1085 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1086 int *invalid)
1087{
0f873fd5
PB
1088 uint64_t rtvalue = (insn >> 21) & 0x1f;
1089 uint64_t ravalue = (insn >> 16) & 0x1f;
ff3a6ee3 1090
b80c7270
AM
1091 if (ravalue >= rtvalue)
1092 *invalid = 1;
1093 return ravalue;
1094}
23976049 1095
b80c7270
AM
1096/* The RA field in the DQ form lq or an lswx instruction, which have special
1097 value restrictions. */
e3c2f928 1098
0f873fd5
PB
1099static uint64_t
1100insert_raq (uint64_t insn,
1101 int64_t value,
b80c7270
AM
1102 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1103 const char **errmsg)
1104{
0f873fd5 1105 int64_t rtvalue = (insn >> 21) & 0x1f;
23976049 1106
b80c7270
AM
1107 if (value == rtvalue)
1108 *errmsg = _("source and target register operands must be different");
1109 return insn | ((value & 0x1f) << 16);
1110}
e3c2f928 1111
0f873fd5
PB
1112static int64_t
1113extract_raq (uint64_t insn,
b80c7270
AM
1114 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1115 int *invalid)
1116{
8acf1435 1117 /* Missing optional operands have a value of zero. */
9cf7e568
AM
1118 if (*invalid < 0)
1119 return 0;
1120
0f873fd5
PB
1121 uint64_t rtvalue = (insn >> 21) & 0x1f;
1122 uint64_t ravalue = (insn >> 16) & 0x1f;
b80c7270
AM
1123 if (ravalue == rtvalue)
1124 *invalid = 1;
1125 return ravalue;
1126}
e3c2f928 1127
b80c7270
AM
1128/* The RA field in a D or X form instruction which is an updating
1129 store or an updating floating point load, which means that the RA
1130 field may not be zero. */
ff3a6ee3 1131
0f873fd5
PB
1132static uint64_t
1133insert_ras (uint64_t insn,
1134 int64_t value,
b80c7270
AM
1135 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1136 const char **errmsg)
1137{
1138 if (value == 0)
1139 *errmsg = _("invalid register operand when updating");
1140 return insn | ((value & 0x1f) << 16);
1141}
c3d65c1c 1142
0f873fd5
PB
1143static int64_t
1144extract_ras (uint64_t insn,
b80c7270
AM
1145 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1146 int *invalid)
1147{
0f873fd5 1148 uint64_t ravalue = (insn >> 16) & 0x1f;
c3d65c1c 1149
b80c7270
AM
1150 if (ravalue == 0)
1151 *invalid = 1;
1152 return ravalue;
1153}
c3d65c1c 1154
98553ad3
PB
1155/* The RS and RB fields in an X form instruction when they must be the same.
1156 This is used for extended mnemonics like mr. The extraction function
1157 enforces that the fields are the same. */
c3d65c1c 1158
0f873fd5 1159static uint64_t
98553ad3
PB
1160insert_rsb (uint64_t insn,
1161 int64_t value,
b80c7270
AM
1162 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1163 const char **errmsg ATTRIBUTE_UNUSED)
1164{
98553ad3
PB
1165 value &= 0x1f;
1166 return insn | (value << 21) | (value << 11);
b80c7270 1167}
5ae2e65e 1168
0f873fd5 1169static int64_t
98553ad3 1170extract_rsb (uint64_t insn,
b80c7270
AM
1171 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1172 int *invalid)
1173{
98553ad3
PB
1174 int64_t rs = (insn >> 21) & 0x1f;
1175 int64_t rb = (insn >> 11) & 0x1f;
1176
1177 if (rs != rb)
b80c7270 1178 *invalid = 1;
98553ad3 1179 return rs;
b80c7270 1180}
702f0fb4 1181
b80c7270
AM
1182/* The RB field in an lswx instruction, which has special value
1183 restrictions. */
702f0fb4 1184
0f873fd5
PB
1185static uint64_t
1186insert_rbx (uint64_t insn,
1187 int64_t value,
b80c7270
AM
1188 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1189 const char **errmsg)
1190{
0f873fd5 1191 int64_t rtvalue = (insn >> 21) & 0x1f;
a680de9a 1192
b80c7270
AM
1193 if (value == rtvalue)
1194 *errmsg = _("source and target register operands must be different");
1195 return insn | ((value & 0x1f) << 11);
1196}
a680de9a 1197
0f873fd5
PB
1198static int64_t
1199extract_rbx (uint64_t insn,
b80c7270
AM
1200 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1201 int *invalid)
1202{
0f873fd5
PB
1203 uint64_t rtvalue = (insn >> 21) & 0x1f;
1204 uint64_t rbvalue = (insn >> 11) & 0x1f;
702f0fb4 1205
b80c7270
AM
1206 if (rbvalue == rtvalue)
1207 *invalid = 1;
1208 return rbvalue;
1209}
702f0fb4 1210
b80c7270 1211/* The SCI8 field is made up of SCL and {U,N}I8 fields. */
0f873fd5
PB
1212static uint64_t
1213insert_sci8 (uint64_t insn,
1214 int64_t value,
b80c7270
AM
1215 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1216 const char **errmsg)
1217{
0f873fd5
PB
1218 uint64_t fill_scale = 0;
1219 uint64_t ui8 = value;
c0637f3a 1220
b80c7270
AM
1221 if ((ui8 & 0xffffff00) == 0)
1222 ;
1223 else if ((ui8 & 0xffffff00) == 0xffffff00)
1224 fill_scale = 0x400;
1225 else if ((ui8 & 0xffff00ff) == 0)
1226 {
1227 fill_scale = 1 << 8;
1228 ui8 >>= 8;
1229 }
1230 else if ((ui8 & 0xffff00ff) == 0xffff00ff)
1231 {
1232 fill_scale = 0x400 | (1 << 8);
1233 ui8 >>= 8;
1234 }
1235 else if ((ui8 & 0xff00ffff) == 0)
1236 {
1237 fill_scale = 2 << 8;
1238 ui8 >>= 16;
1239 }
1240 else if ((ui8 & 0xff00ffff) == 0xff00ffff)
1241 {
1242 fill_scale = 0x400 | (2 << 8);
1243 ui8 >>= 16;
1244 }
1245 else if ((ui8 & 0x00ffffff) == 0)
1246 {
1247 fill_scale = 3 << 8;
1248 ui8 >>= 24;
1249 }
1250 else if ((ui8 & 0x00ffffff) == 0x00ffffff)
1251 {
1252 fill_scale = 0x400 | (3 << 8);
1253 ui8 >>= 24;
1254 }
1255 else
1256 {
1257 *errmsg = _("illegal immediate value");
1258 ui8 = 0;
1259 }
702f0fb4 1260
b80c7270
AM
1261 return insn | fill_scale | (ui8 & 0xff);
1262}
ea192fa3 1263
0f873fd5
PB
1264static int64_t
1265extract_sci8 (uint64_t insn,
b80c7270
AM
1266 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1267 int *invalid ATTRIBUTE_UNUSED)
1268{
0f873fd5
PB
1269 int64_t fill = insn & 0x400;
1270 int64_t scale_factor = (insn & 0x300) >> 5;
1271 int64_t value = (insn & 0xff) << scale_factor;
081ba1b3 1272
b80c7270 1273 if (fill != 0)
0f873fd5 1274 value |= ~((int64_t) 0xff << scale_factor);
b80c7270
AM
1275 return value;
1276}
081ba1b3 1277
0f873fd5
PB
1278static uint64_t
1279insert_sci8n (uint64_t insn,
1280 int64_t value,
b80c7270
AM
1281 ppc_cpu_t dialect,
1282 const char **errmsg)
1283{
1284 return insert_sci8 (insn, -value, dialect, errmsg);
1285}
081ba1b3 1286
0f873fd5
PB
1287static int64_t
1288extract_sci8n (uint64_t insn,
b80c7270
AM
1289 ppc_cpu_t dialect,
1290 int *invalid)
1291{
1292 return -extract_sci8 (insn, dialect, invalid);
1293}
081ba1b3 1294
0f873fd5
PB
1295static uint64_t
1296insert_oimm (uint64_t insn,
1297 int64_t value,
b80c7270
AM
1298 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1299 const char **errmsg ATTRIBUTE_UNUSED)
1300{
1301 return insn | (((value - 1) & 0x1f) << 4);
1302}
b9c361e0 1303
0f873fd5
PB
1304static int64_t
1305extract_oimm (uint64_t insn,
b80c7270
AM
1306 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1307 int *invalid ATTRIBUTE_UNUSED)
1308{
1309 return ((insn >> 4) & 0x1f) + 1;
1310}
b9c361e0 1311
b80c7270 1312/* The SH field in an MD form instruction. This is split. */
b9c361e0 1313
0f873fd5
PB
1314static uint64_t
1315insert_sh6 (uint64_t insn,
1316 int64_t value,
b80c7270
AM
1317 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1318 const char **errmsg ATTRIBUTE_UNUSED)
1319{
71553718 1320 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
b80c7270 1321}
9b4e5766 1322
0f873fd5
PB
1323static int64_t
1324extract_sh6 (uint64_t insn,
b80c7270
AM
1325 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1326 int *invalid ATTRIBUTE_UNUSED)
1327{
71553718 1328 return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20);
b80c7270 1329}
a680de9a 1330
b80c7270
AM
1331/* The SPR field in an XFX form instruction. This is flipped--the
1332 lower 5 bits are stored in the upper 5 and vice- versa. */
9b4e5766 1333
0f873fd5
PB
1334static uint64_t
1335insert_spr (uint64_t insn,
1336 int64_t value,
b80c7270
AM
1337 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1338 const char **errmsg ATTRIBUTE_UNUSED)
1339{
1340 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
1341}
9b4e5766 1342
0f873fd5
PB
1343static int64_t
1344extract_spr (uint64_t insn,
b80c7270
AM
1345 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1346 int *invalid ATTRIBUTE_UNUSED)
1347{
1348 return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
1349}
9b4e5766 1350
fa758a70
AC
1351/* Some dialects have 8 [DI]BAT registers instead of the standard 4. */
1352#define ALLOW8_BAT (PPC_OPCODE_750)
1353
16065af1
AM
1354static uint64_t
1355insert_sprbat (uint64_t insn,
1356 int64_t value,
fa758a70
AC
1357 ppc_cpu_t dialect,
1358 const char **errmsg)
1359{
71553718
AM
1360 if ((uint64_t) value > 7
1361 || ((uint64_t) value > 3 && (dialect & ALLOW8_BAT) == 0))
fa758a70
AC
1362 *errmsg = _("invalid bat number");
1363
1364 /* If this is [di]bat4..7 then use spr 560..575, otherwise 528..543. */
71553718 1365 if ((uint64_t) value > 3)
fa758a70
AC
1366 value = ((value & 3) << 6) | 1;
1367 else
1368 value = value << 6;
1369
1370 return insn | (value << 11);
1371}
1372
16065af1
AM
1373static int64_t
1374extract_sprbat (uint64_t insn,
fa758a70
AC
1375 ppc_cpu_t dialect,
1376 int *invalid)
1377{
16065af1 1378 uint64_t val = (insn >> 17) & 0x3;
fa758a70
AC
1379
1380 val = val + ((insn >> 9) & 0x4);
1381 if (val > 3 && (dialect & ALLOW8_BAT) == 0)
1382 *invalid = 1;
1383 return val;
1384}
1385
b80c7270
AM
1386/* Some dialects have 8 SPRG registers instead of the standard 4. */
1387#define ALLOW8_SPRG (PPC_OPCODE_BOOKE | PPC_OPCODE_405)
066be9f7 1388
0f873fd5
PB
1389static uint64_t
1390insert_sprg (uint64_t insn,
1391 int64_t value,
b80c7270
AM
1392 ppc_cpu_t dialect,
1393 const char **errmsg)
1394{
71553718
AM
1395 if ((uint64_t) value > 7
1396 || ((uint64_t) value > 3 && (dialect & ALLOW8_SPRG) == 0))
b80c7270 1397 *errmsg = _("invalid sprg number");
066be9f7 1398
b80c7270
AM
1399 /* If this is mfsprg4..7 then use spr 260..263 which can be read in
1400 user mode. Anything else must use spr 272..279. */
71553718 1401 if ((uint64_t) value <= 3 || (insn & 0x100) != 0)
b80c7270 1402 value |= 0x10;
066be9f7 1403
b80c7270
AM
1404 return insn | ((value & 0x17) << 16);
1405}
e0d602ec 1406
0f873fd5
PB
1407static int64_t
1408extract_sprg (uint64_t insn,
b80c7270
AM
1409 ppc_cpu_t dialect,
1410 int *invalid)
1411{
0f873fd5 1412 uint64_t val = (insn >> 16) & 0x1f;
4bc0608a 1413
b80c7270
AM
1414 /* mfsprg can use 260..263 and 272..279. mtsprg only uses spr 272..279
1415 If not BOOKE, 405 or VLE, then both use only 272..275. */
1416 if ((val - 0x10 > 3 && (dialect & ALLOW8_SPRG) == 0)
1417 || (val - 0x10 > 7 && (insn & 0x100) != 0)
1418 || val <= 3
1419 || (val & 8) != 0)
1420 *invalid = 1;
1421 return val & 7;
1422}
a680de9a 1423
b80c7270
AM
1424/* The TBR field in an XFX instruction. This is just like SPR, but it
1425 is optional. */
e3c2f928 1426
0f873fd5
PB
1427static uint64_t
1428insert_tbr (uint64_t insn,
1429 int64_t value,
b80c7270
AM
1430 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1431 const char **errmsg)
1432{
1433 if (value != 268 && value != 269)
1434 *errmsg = _("invalid tbr number");
1435 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
1436}
252b5132 1437
0f873fd5
PB
1438static int64_t
1439extract_tbr (uint64_t insn,
b80c7270
AM
1440 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1441 int *invalid)
1442{
8acf1435 1443 /* Missing optional operands have a value of 268. */
9cf7e568
AM
1444 if (*invalid < 0)
1445 return 268;
1446
0f873fd5 1447 int64_t ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
b80c7270
AM
1448 if (ret != 268 && ret != 269)
1449 *invalid = 1;
1450 return ret;
1451}
252b5132 1452
b80c7270 1453/* The XT and XS fields in an XX1 or XX3 form instruction. This is split. */
b9c361e0 1454
0f873fd5
PB
1455static uint64_t
1456insert_xt6 (uint64_t insn,
1457 int64_t value,
b9c361e0
JL
1458 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1459 const char **errmsg ATTRIBUTE_UNUSED)
1460{
b80c7270 1461 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 5);
b9c361e0
JL
1462}
1463
0f873fd5
PB
1464static int64_t
1465extract_xt6 (uint64_t insn,
b9c361e0
JL
1466 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1467 int *invalid ATTRIBUTE_UNUSED)
43e65147 1468{
b80c7270 1469 return ((insn << 5) & 0x20) | ((insn >> 21) & 0x1f);
b9c361e0
JL
1470}
1471
b80c7270 1472/* The XT and XS fields in an DQ form VSX instruction. This is split. */
0f873fd5
PB
1473static uint64_t
1474insert_xtq6 (uint64_t insn,
1475 int64_t value,
b80c7270
AM
1476 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1477 const char **errmsg ATTRIBUTE_UNUSED)
1478{
1479 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 2);
1480}
1481
0f873fd5
PB
1482static int64_t
1483extract_xtq6 (uint64_t insn,
b80c7270
AM
1484 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1485 int *invalid ATTRIBUTE_UNUSED)
1486{
1487 return ((insn << 2) & 0x20) | ((insn >> 21) & 0x1f);
1488}
1489
1490/* The XA field in an XX3 form instruction. This is split. */
1491
0f873fd5
PB
1492static uint64_t
1493insert_xa6 (uint64_t insn,
1494 int64_t value,
b9c361e0
JL
1495 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1496 const char **errmsg ATTRIBUTE_UNUSED)
1497{
b80c7270 1498 return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3);
b9c361e0
JL
1499}
1500
0f873fd5
PB
1501static int64_t
1502extract_xa6 (uint64_t insn,
b9c361e0
JL
1503 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1504 int *invalid ATTRIBUTE_UNUSED)
1505{
b80c7270 1506 return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
b9c361e0
JL
1507}
1508
b80c7270
AM
1509/* The XB field in an XX3 form instruction. This is split. */
1510
0f873fd5
PB
1511static uint64_t
1512insert_xb6 (uint64_t insn,
1513 int64_t value,
b80c7270
AM
1514 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1515 const char **errmsg ATTRIBUTE_UNUSED)
b9c361e0 1516{
b80c7270 1517 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
b9c361e0
JL
1518}
1519
0f873fd5
PB
1520static int64_t
1521extract_xb6 (uint64_t insn,
b80c7270
AM
1522 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1523 int *invalid ATTRIBUTE_UNUSED)
b9c361e0 1524{
b80c7270 1525 return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1f);
b9c361e0
JL
1526}
1527
98553ad3
PB
1528/* The XA and XB fields in an XX3 form instruction when they must be the same.
1529 This is used for extended mnemonics like xvmovdp. The extraction function
1530 enforces that the fields are the same. */
b80c7270 1531
0f873fd5 1532static uint64_t
98553ad3
PB
1533insert_xab6 (uint64_t insn,
1534 int64_t value,
1535 ppc_cpu_t dialect,
1536 const char **errmsg)
b9c361e0 1537{
98553ad3
PB
1538 return insert_xa6 (insn, value, dialect, errmsg)
1539 | insert_xb6 (insn, value, dialect, errmsg);
b9c361e0
JL
1540}
1541
0f873fd5 1542static int64_t
98553ad3
PB
1543extract_xab6 (uint64_t insn,
1544 ppc_cpu_t dialect,
b80c7270 1545 int *invalid)
b9c361e0 1546{
98553ad3
PB
1547 int64_t xa6 = extract_xa6 (insn, dialect, invalid);
1548 int64_t xb6 = extract_xb6 (insn, dialect, invalid);
1549
1550 if (xa6 != xb6)
b80c7270 1551 *invalid = 1;
98553ad3 1552 return xa6;
b9c361e0
JL
1553}
1554
b80c7270 1555/* The XC field in an XX4 form instruction. This is split. */
252b5132 1556
0f873fd5
PB
1557static uint64_t
1558insert_xc6 (uint64_t insn,
1559 int64_t value,
fa452fa6 1560 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2fbfdc41 1561 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1562{
b80c7270 1563 return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2);
252b5132
RH
1564}
1565
0f873fd5
PB
1566static int64_t
1567extract_xc6 (uint64_t insn,
fa452fa6 1568 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270 1569 int *invalid ATTRIBUTE_UNUSED)
252b5132 1570{
b80c7270
AM
1571 return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f);
1572}
1573
0f873fd5
PB
1574static uint64_t
1575insert_dm (uint64_t insn,
1576 int64_t value,
b80c7270
AM
1577 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1578 const char **errmsg)
1579{
1580 if (value != 0 && value != 1)
1581 *errmsg = _("invalid constant");
1582 return insn | (((value) ? 3 : 0) << 8);
1583}
1584
0f873fd5
PB
1585static int64_t
1586extract_dm (uint64_t insn,
b80c7270
AM
1587 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1588 int *invalid)
1589{
0f873fd5 1590 int64_t value = (insn >> 8) & 3;
b80c7270 1591 if (value != 0 && value != 3)
252b5132 1592 *invalid = 1;
b80c7270 1593 return (value) ? 1 : 0;
252b5132
RH
1594}
1595
b80c7270 1596/* The VLESIMM field in an I16A form instruction. This is split. */
252b5132 1597
0f873fd5
PB
1598static uint64_t
1599insert_vlesi (uint64_t insn,
1600 int64_t value,
b80c7270
AM
1601 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1602 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1603{
b80c7270 1604 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132
RH
1605}
1606
0f873fd5
PB
1607static int64_t
1608extract_vlesi (uint64_t insn,
b80c7270
AM
1609 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1610 int *invalid ATTRIBUTE_UNUSED)
252b5132 1611{
0f873fd5 1612 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
b80c7270
AM
1613 value = (value ^ 0x8000) - 0x8000;
1614 return value;
252b5132
RH
1615}
1616
0f873fd5
PB
1617static uint64_t
1618insert_vlensi (uint64_t insn,
1619 int64_t value,
b80c7270
AM
1620 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1621 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1622{
b80c7270
AM
1623 value = -value;
1624 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132 1625}
0f873fd5
PB
1626static int64_t
1627extract_vlensi (uint64_t insn,
b80c7270 1628 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
9cf7e568 1629 int *invalid)
252b5132 1630{
0f873fd5 1631 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
b80c7270
AM
1632 value = (value ^ 0x8000) - 0x8000;
1633 /* Don't use for disassembly. */
1634 *invalid = 1;
1635 return -value;
252b5132
RH
1636}
1637
b80c7270 1638/* The VLEUIMM field in an I16A form instruction. This is split. */
252b5132 1639
0f873fd5
PB
1640static uint64_t
1641insert_vleui (uint64_t insn,
1642 int64_t value,
b80c7270
AM
1643 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1644 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1645{
b80c7270 1646 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132
RH
1647}
1648
0f873fd5
PB
1649static int64_t
1650extract_vleui (uint64_t insn,
b80c7270
AM
1651 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1652 int *invalid ATTRIBUTE_UNUSED)
252b5132 1653{
b80c7270
AM
1654 return ((insn >> 10) & 0xf800) | (insn & 0x7ff);
1655}
8427c424 1656
b80c7270
AM
1657/* The VLEUIMML field in an I16L form instruction. This is split. */
1658
0f873fd5
PB
1659static uint64_t
1660insert_vleil (uint64_t insn,
1661 int64_t value,
b80c7270
AM
1662 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1663 const char **errmsg ATTRIBUTE_UNUSED)
1664{
1665 return insn | ((value & 0xf800) << 5) | (value & 0x7ff);
252b5132
RH
1666}
1667
0f873fd5
PB
1668static int64_t
1669extract_vleil (uint64_t insn,
b80c7270
AM
1670 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1671 int *invalid ATTRIBUTE_UNUSED)
252b5132 1672{
b80c7270 1673 return ((insn >> 5) & 0xf800) | (insn & 0x7ff);
8ebac3aa 1674}
ba4e851b 1675
0f873fd5
PB
1676static uint64_t
1677insert_evuimm1_ex0 (uint64_t insn,
1678 int64_t value,
74081948
AF
1679 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1680 const char **errmsg)
1681{
71553718
AM
1682 if (value <= 0 || value > 0x1f)
1683 *errmsg = _("UIMM = 00000 is illegal");
1684 return insn | ((value & 0x1f) << 11);
74081948
AF
1685}
1686
0f873fd5
PB
1687static int64_t
1688extract_evuimm1_ex0 (uint64_t insn,
74081948
AF
1689 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1690 int *invalid)
1691{
0f873fd5 1692 int64_t value = ((insn >> 11) & 0x1f);
74081948
AF
1693 if (value == 0)
1694 *invalid = 1;
1695
1696 return value;
1697}
1698
0f873fd5
PB
1699static uint64_t
1700insert_evuimm2_ex0 (uint64_t insn,
1701 int64_t value,
b80c7270
AM
1702 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1703 const char **errmsg)
8ebac3aa 1704{
71553718
AM
1705 if (value <= 0 || value > 0x3e)
1706 *errmsg = _("UIMM = 00000 is illegal");
1707 return insn | ((value & 0x3e) << 10);
252b5132
RH
1708}
1709
0f873fd5
PB
1710static int64_t
1711extract_evuimm2_ex0 (uint64_t insn,
b80c7270
AM
1712 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1713 int *invalid)
8ebac3aa 1714{
0f873fd5 1715 int64_t value = ((insn >> 10) & 0x3e);
b80c7270
AM
1716 if (value == 0)
1717 *invalid = 1;
8ebac3aa 1718
b80c7270 1719 return value;
8ebac3aa
AM
1720}
1721
0f873fd5
PB
1722static uint64_t
1723insert_evuimm4_ex0 (uint64_t insn,
1724 int64_t value,
b80c7270
AM
1725 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1726 const char **errmsg)
252b5132 1727{
71553718
AM
1728 if (value <= 0 || value > 0x7c)
1729 *errmsg = _("UIMM = 00000 is illegal");
1730 return insn | ((value & 0x7c) << 9);
252b5132
RH
1731}
1732
0f873fd5
PB
1733static int64_t
1734extract_evuimm4_ex0 (uint64_t insn,
b80c7270
AM
1735 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1736 int *invalid)
252b5132 1737{
0f873fd5 1738 int64_t value = ((insn >> 9) & 0x7c);
b80c7270 1739 if (value == 0)
252b5132 1740 *invalid = 1;
b80c7270 1741
252b5132
RH
1742 return value;
1743}
1744
0f873fd5
PB
1745static uint64_t
1746insert_evuimm8_ex0 (uint64_t insn,
1747 int64_t value,
b80c7270
AM
1748 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1749 const char **errmsg)
1750{
71553718
AM
1751 if (value <= 0 || value > 0xf8)
1752 *errmsg = _("UIMM = 00000 is illegal");
1753 return insn | ((value & 0xf8) << 8);
252b5132
RH
1754}
1755
0f873fd5
PB
1756static int64_t
1757extract_evuimm8_ex0 (uint64_t insn,
b80c7270
AM
1758 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1759 int *invalid)
252b5132 1760{
0f873fd5 1761 int64_t value = ((insn >> 8) & 0xf8);
b80c7270 1762 if (value == 0)
252b5132 1763 *invalid = 1;
252b5132 1764
b80c7270
AM
1765 return value;
1766}
a680de9a 1767
0f873fd5
PB
1768static uint64_t
1769insert_evuimm_lt8 (uint64_t insn,
1770 int64_t value,
74081948
AF
1771 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1772 const char **errmsg)
1773{
71553718
AM
1774 if (value < 0 || value > 7)
1775 *errmsg = _("UIMM values >7 are illegal");
1776 return insn | ((value & 0x7) << 11);
74081948
AF
1777}
1778
0f873fd5
PB
1779static int64_t
1780extract_evuimm_lt8 (uint64_t insn,
74081948
AF
1781 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1782 int *invalid)
1783{
0f873fd5 1784 int64_t value = ((insn >> 11) & 0x1f);
74081948
AF
1785 if (value > 7)
1786 *invalid = 1;
1787
1788 return value;
1789}
1790
0f873fd5
PB
1791static uint64_t
1792insert_evuimm_lt16 (uint64_t insn,
1793 int64_t value,
b80c7270
AM
1794 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1795 const char **errmsg)
a680de9a 1796{
71553718
AM
1797 if (value < 0 || value > 15)
1798 *errmsg = _("UIMM values >15 are illegal");
1799 return insn | ((value & 0xf) << 11);
a680de9a
PB
1800}
1801
0f873fd5
PB
1802static int64_t
1803extract_evuimm_lt16 (uint64_t insn,
b80c7270
AM
1804 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1805 int *invalid)
a680de9a 1806{
0f873fd5 1807 int64_t value = ((insn >> 11) & 0x1f);
b80c7270
AM
1808 if (value > 15)
1809 *invalid = 1;
a680de9a 1810
b80c7270
AM
1811 return value;
1812}
a680de9a 1813
0f873fd5
PB
1814static uint64_t
1815insert_rD_rS_even (uint64_t insn,
1816 int64_t value,
b80c7270
AM
1817 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1818 const char **errmsg)
a680de9a 1819{
71553718
AM
1820 if ((value & 0x1) != 0)
1821 *errmsg = _("GPR odd is illegal");
1822 return insn | ((value & 0x1e) << 21);
a680de9a
PB
1823}
1824
0f873fd5
PB
1825static int64_t
1826extract_rD_rS_even (uint64_t insn,
b80c7270
AM
1827 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1828 int *invalid)
a680de9a 1829{
0f873fd5 1830 int64_t value = ((insn >> 21) & 0x1f);
b80c7270
AM
1831 if ((value & 0x1) != 0)
1832 *invalid = 1;
1833
1834 return value;
a680de9a
PB
1835}
1836
0f873fd5
PB
1837static uint64_t
1838insert_off_lsp (uint64_t insn,
1839 int64_t value,
b80c7270
AM
1840 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1841 const char **errmsg)
a680de9a 1842{
71553718
AM
1843 if (value <= 0 || value > 0x3)
1844 *errmsg = _("invalid offset");
1845 return insn | (value & 0x3);
a680de9a
PB
1846}
1847
0f873fd5
PB
1848static int64_t
1849extract_off_lsp (uint64_t insn,
b80c7270
AM
1850 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1851 int *invalid)
a680de9a 1852{
0f873fd5 1853 int64_t value = (insn & 0x3);
b80c7270
AM
1854 if (value == 0)
1855 *invalid = 1;
1856
1857 return value;
a680de9a 1858}
74081948 1859
0f873fd5
PB
1860static uint64_t
1861insert_off_spe2 (uint64_t insn,
1862 int64_t value,
74081948
AF
1863 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1864 const char **errmsg)
1865{
71553718
AM
1866 if (value <= 0 || value > 0x7)
1867 *errmsg = _("invalid offset");
1868 return insn | (value & 0x7);
74081948
AF
1869}
1870
0f873fd5
PB
1871static int64_t
1872extract_off_spe2 (uint64_t insn,
74081948
AF
1873 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1874 int *invalid)
1875{
0f873fd5 1876 int64_t value = (insn & 0x7);
74081948
AF
1877 if (value == 0)
1878 *invalid = 1;
1879
1880 return value;
1881}
1882
0f873fd5
PB
1883static uint64_t
1884insert_Ddd (uint64_t insn,
1885 int64_t value,
74081948
AF
1886 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1887 const char **errmsg)
1888{
71553718
AM
1889 if (value < 0 || value > 0x7)
1890 *errmsg = _("invalid Ddd value");
1891 return insn | ((value & 0x3) << 11) | ((value & 0x4) >> 2);
74081948
AF
1892}
1893
0f873fd5
PB
1894static int64_t
1895extract_Ddd (uint64_t insn,
74081948
AF
1896 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1897 int *invalid ATTRIBUTE_UNUSED)
1898{
1899 return ((insn >> 11) & 0x3) | ((insn << 2) & 0x4);
1900}
9cf7e568
AM
1901
1902static uint64_t
1903insert_sxl (uint64_t insn,
1904 int64_t value,
1905 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1906 const char **errmsg ATTRIBUTE_UNUSED)
1907{
1908 return insn | ((value & 0x1) << 11);
1909}
1910
1911static int64_t
1912extract_sxl (uint64_t insn,
1913 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1914 int *invalid)
1915{
8acf1435 1916 /* Missing optional operands have a value of one. */
9cf7e568
AM
1917 if (*invalid < 0)
1918 return 1;
1919 return (insn >> 11) & 0x1;
1920}
b80c7270
AM
1921\f
1922/* The operands table.
a680de9a 1923
b80c7270 1924 The fields are bitm, shift, insert, extract, flags.
2fbfdc41 1925
b80c7270
AM
1926 We used to put parens around the various additions, like the one
1927 for BA just below. However, that caused trouble with feeble
1928 compilers with a limit on depth of a parenthesized expression, like
1929 (reportedly) the compiler in Microsoft Developer Studio 5. So we
1930 omit the parens, since the macros are never used in a context where
1931 the addition will be ambiguous. */
1932
1933const struct powerpc_operand powerpc_operands[] =
c168870a 1934{
b80c7270
AM
1935 /* The zero index is used to indicate the end of the list of
1936 operands. */
1937#define UNUSED 0
1938 { 0, 0, NULL, NULL, 0 },
1939
1940 /* The BA field in an XL form instruction. */
1941#define BA UNUSED + 1
1942 /* The BI field in a B form or XL form instruction. */
1943#define BI BA
1944#define BI_MASK (0x1f << 16)
1945 { 0x1f, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
1946
98553ad3
PB
1947 /* The BT, BA and BB fields in a XL form instruction when they must all
1948 be the same. */
1949#define BTAB BA + 1
1950 { 0x1f, 21, insert_btab, extract_btab, PPC_OPERAND_CR_BIT },
b80c7270
AM
1951
1952 /* The BB field in an XL form instruction. */
98553ad3 1953#define BB BTAB + 1
b80c7270
AM
1954#define BB_MASK (0x1f << 11)
1955 { 0x1f, 11, NULL, NULL, PPC_OPERAND_CR_BIT },
1956
98553ad3
PB
1957 /* The BA and BB fields in a XL form instruction when they must be
1958 the same. */
1959#define BAB BB + 1
1960 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_CR_BIT },
1961
1962 /* The VRA and VRB fields in a VX form instruction when they must be the same.
1963 This is used for extended mnemonics like vmr. */
1964#define VAB BAB + 1
1965 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_VR },
1966
1967 /* The RA and RB fields in a VX form instruction when they must be the same.
1968 This is used for extended mnemonics like evmr. */
1969#define RAB VAB + 1
1970 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_GPR },
b80c7270
AM
1971
1972 /* The BD field in a B form instruction. The lower two bits are
1973 forced to zero. */
98553ad3 1974#define BD RAB + 1
b80c7270
AM
1975 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
1976
1977 /* The BD field in a B form instruction when absolute addressing is
1978 used. */
1979#define BDA BD + 1
1980 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
1981
1982 /* The BD field in a B form instruction when the - modifier is used.
1983 This sets the y bit of the BO field appropriately. */
1984#define BDM BDA + 1
1985 { 0xfffc, 0, insert_bdm, extract_bdm,
1986 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
1987
1988 /* The BD field in a B form instruction when the - modifier is used
1989 and absolute address is used. */
1990#define BDMA BDM + 1
1991 { 0xfffc, 0, insert_bdm, extract_bdm,
1992 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
1993
1994 /* The BD field in a B form instruction when the + modifier is used.
1995 This sets the y bit of the BO field appropriately. */
1996#define BDP BDMA + 1
1997 { 0xfffc, 0, insert_bdp, extract_bdp,
1998 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
1999
2000 /* The BD field in a B form instruction when the + modifier is used
2001 and absolute addressing is used. */
2002#define BDPA BDP + 1
2003 { 0xfffc, 0, insert_bdp, extract_bdp,
2004 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
2005
2006 /* The BF field in an X or XL form instruction. */
2007#define BF BDPA + 1
2008 /* The CRFD field in an X form instruction. */
2009#define CRFD BF
2010 /* The CRD field in an XL form instruction. */
2011#define CRD BF
2012 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG },
2013
2014 /* The BF field in an X or XL form instruction. */
2015#define BFF BF + 1
2016 { 0x7, 23, NULL, NULL, 0 },
2017
2018 /* An optional BF field. This is used for comparison instructions,
2019 in which an omitted BF field is taken as zero. */
2020#define OBF BFF + 1
2021 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
2022
2023 /* The BFA field in an X or XL form instruction. */
2024#define BFA OBF + 1
2025 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG },
2026
2027 /* The BO field in a B form instruction. Certain values are
2028 illegal. */
2029#define BO BFA + 1
2030#define BO_MASK (0x1f << 21)
2031 { 0x1f, 21, insert_bo, extract_bo, 0 },
2032
aae9718e
PB
2033 /* The BO field in a B form instruction when the - modifier is used. */
2034#define BOM BO + 1
2035 { 0x1f, 21, insert_bom, extract_bom, 0 },
2036
2037 /* The BO field in a B form instruction when the + modifier is used. */
2038#define BOP BOM + 1
2039 { 0x1f, 21, insert_bop, extract_bop, 0 },
b80c7270
AM
2040
2041 /* The RM field in an X form instruction. */
aae9718e 2042#define RM BOP + 1
74081948 2043#define DD RM
b80c7270
AM
2044 { 0x3, 11, NULL, NULL, 0 },
2045
2046#define BH RM + 1
2047 { 0x3, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
2048
2049 /* The BT field in an X or XL form instruction. */
2050#define BT BH + 1
2051 { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT },
2052
96a86c01
AM
2053 /* The BT field in a mtfsb0 or mtfsb1 instruction. */
2054#define BTF BT + 1
2055 { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT | PPC_OPERAND_CR_REG },
2056
b80c7270 2057 /* The BI16 field in a BD8 form instruction. */
96a86c01 2058#define BI16 BTF + 1
b80c7270
AM
2059 { 0x3, 8, NULL, NULL, PPC_OPERAND_CR_BIT },
2060
2061 /* The BI32 field in a BD15 form instruction. */
2062#define BI32 BI16 + 1
2063 { 0xf, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
98e69875 2064
b80c7270
AM
2065 /* The BO32 field in a BD15 form instruction. */
2066#define BO32 BI32 + 1
2067 { 0x3, 20, NULL, NULL, 0 },
c168870a 2068
b80c7270
AM
2069 /* The B8 field in a BD8 form instruction. */
2070#define B8 BO32 + 1
2071 { 0x1fe, -1, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 2072
b80c7270
AM
2073 /* The B15 field in a BD15 form instruction. The lowest bit is
2074 forced to zero. */
2075#define B15 B8 + 1
2076 { 0xfffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 2077
b80c7270
AM
2078 /* The B24 field in a BD24 form instruction. The lowest bit is
2079 forced to zero. */
2080#define B24 B15 + 1
2081 { 0x1fffffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 2082
b80c7270
AM
2083 /* The condition register number portion of the BI field in a B form
2084 or XL form instruction. This is used for the extended
2085 conditional branch mnemonics, which set the lower two bits of the
2086 BI field. This field is optional. */
2087#define CR B24 + 1
2088 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
c168870a 2089
b80c7270
AM
2090 /* The CRB field in an X form instruction. */
2091#define CRB CR + 1
2092 /* The MB field in an M form instruction. */
2093#define MB CRB
2094#define MB_MASK (0x1f << 6)
2095 { 0x1f, 6, NULL, NULL, 0 },
c168870a 2096
b80c7270
AM
2097 /* The CRD32 field in an XL form instruction. */
2098#define CRD32 CRB + 1
2099 { 0x3, 21, NULL, NULL, PPC_OPERAND_CR_REG },
c168870a 2100
b80c7270
AM
2101 /* The CRFS field in an X form instruction. */
2102#define CRFS CRD32 + 1
2103 { 0x7, 0, NULL, NULL, PPC_OPERAND_CR_REG },
b9c361e0 2104
b80c7270
AM
2105#define CRS CRFS + 1
2106 { 0x3, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
b9c361e0 2107
b80c7270
AM
2108 /* The CT field in an X form instruction. */
2109#define CT CRS + 1
2110 /* The MO field in an mbar instruction. */
2111#define MO CT
2112 { 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 2113
b80c7270
AM
2114 /* The D field in a D form instruction. This is a displacement off
2115 a register, and implies that the next operand is a register in
2116 parentheses. */
2117#define D CT + 1
2118 { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
aea77599 2119
b80c7270
AM
2120 /* The D8 field in a D form instruction. This is a displacement off
2121 a register, and implies that the next operand is a register in
2122 parentheses. */
2123#define D8 D + 1
2124 { 0xff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
7b934113 2125
b80c7270
AM
2126 /* The DCMX field in an X form instruction. */
2127#define DCMX D8 + 1
2128 { 0x7f, 16, NULL, NULL, 0 },
7b934113 2129
b80c7270
AM
2130 /* The split DCMX field in an X form instruction. */
2131#define DCMXS DCMX + 1
2132 { 0x7f, PPC_OPSHIFT_INV, insert_dcmxs, extract_dcmxs, 0 },
73f07bff 2133
b80c7270
AM
2134 /* The DQ field in a DQ form instruction. This is like D, but the
2135 lower four bits are forced to zero. */
2136#define DQ DCMXS + 1
2137 { 0xfff0, 0, NULL, NULL,
2138 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ },
73f07bff 2139
b80c7270
AM
2140 /* The DS field in a DS form instruction. This is like D, but the
2141 lower two bits are forced to zero. */
2142#define DS DQ + 1
2143 { 0xfffc, 0, NULL, NULL,
2144 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS },
7b934113 2145
8acf1435
PB
2146 /* The D field in an 8-byte D form prefix instruction. This is a displacement
2147 off a register, and implies that the next operand is a register in
2148 parentheses. */
2149#define D34 DS + 1
2150 { 0x3ffffffff, PPC_OPSHIFT_INV, insert_d34, extract_d34,
2151 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
2152
2153 /* The SI field in an 8-byte D form prefix instruction. */
2154#define SI34 D34 + 1
2155 { 0x3ffffffff, PPC_OPSHIFT_INV, insert_d34, extract_d34, PPC_OPERAND_SIGNED },
2156
2157 /* The NSI field in an 8-byte D form prefix instruction. This is the
2158 same as the SI34 field, only negated. */
2159#define NSI34 SI34 + 1
2160 { 0x3ffffffff, PPC_OPSHIFT_INV, insert_nsi34, extract_nsi34,
2161 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
2162
b80c7270
AM
2163 /* The DUIS or BHRBE fields in a XFX form instruction, 10 bits
2164 unsigned imediate */
8acf1435 2165#define DUIS NSI34 + 1
b80c7270
AM
2166#define BHRBE DUIS
2167 { 0x3ff, 11, NULL, NULL, 0 },
aea77599 2168
b80c7270
AM
2169 /* The split D field in a DX form instruction. */
2170#define DXD DUIS + 1
2171 { 0xffff, PPC_OPSHIFT_INV, insert_dxd, extract_dxd,
2172 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
7b934113 2173
b80c7270
AM
2174 /* The split ND field in a DX form instruction.
2175 This is the same as the DX field, only negated. */
2176#define NDXD DXD + 1
2177 { 0xffff, PPC_OPSHIFT_INV, insert_dxdn, extract_dxdn,
2178 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
7b934113 2179
b80c7270
AM
2180 /* The E field in a wrteei instruction. */
2181 /* And the W bit in the pair singles instructions. */
2182 /* And the ST field in a VX form instruction. */
2183#define E NDXD + 1
2184#define PSW E
2185#define ST E
2186 { 0x1, 15, NULL, NULL, 0 },
aea77599 2187
b80c7270
AM
2188 /* The FL1 field in a POWER SC form instruction. */
2189#define FL1 E + 1
2190 /* The U field in an X form instruction. */
2191#define U FL1
2192 { 0xf, 12, NULL, NULL, 0 },
73f07bff 2193
b80c7270
AM
2194 /* The FL2 field in a POWER SC form instruction. */
2195#define FL2 FL1 + 1
2196 { 0x7, 2, NULL, NULL, 0 },
73f07bff 2197
b80c7270
AM
2198 /* The FLM field in an XFL form instruction. */
2199#define FLM FL2 + 1
2200 { 0xff, 17, NULL, NULL, 0 },
73f07bff 2201
b80c7270
AM
2202 /* The FRA field in an X or A form instruction. */
2203#define FRA FLM + 1
2204#define FRA_MASK (0x1f << 16)
2205 { 0x1f, 16, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2206
b80c7270
AM
2207 /* The FRAp field of DFP instructions. */
2208#define FRAp FRA + 1
2209 { 0x1e, 16, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2210
b80c7270
AM
2211 /* The FRB field in an X or A form instruction. */
2212#define FRB FRAp + 1
2213#define FRB_MASK (0x1f << 11)
2214 { 0x1f, 11, NULL, NULL, PPC_OPERAND_FPR },
2215
2216 /* The FRBp field of DFP instructions. */
2217#define FRBp FRB + 1
2218 { 0x1e, 11, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2219
b80c7270
AM
2220 /* The FRC field in an A form instruction. */
2221#define FRC FRBp + 1
2222#define FRC_MASK (0x1f << 6)
2223 { 0x1f, 6, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2224
b80c7270
AM
2225 /* The FRS field in an X form instruction or the FRT field in a D, X
2226 or A form instruction. */
2227#define FRS FRC + 1
2228#define FRT FRS
2229 { 0x1f, 21, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2230
b80c7270
AM
2231 /* The FRSp field of stfdp or the FRTp field of lfdp and DFP
2232 instructions. */
2233#define FRSp FRS + 1
2234#define FRTp FRSp
2235 { 0x1e, 21, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2236
b80c7270
AM
2237 /* The FXM field in an XFX instruction. */
2238#define FXM FRSp + 1
2239 { 0xff, 12, insert_fxm, extract_fxm, 0 },
252b5132 2240
b80c7270
AM
2241 /* Power4 version for mfcr. */
2242#define FXM4 FXM + 1
9cf7e568 2243 { 0xff, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL },
252b5132 2244
b80c7270 2245 /* The IMM20 field in an LI instruction. */
9cf7e568 2246#define IMM20 FXM4 + 1
b80c7270 2247 { 0xfffff, PPC_OPSHIFT_INV, insert_li20, extract_li20, PPC_OPERAND_SIGNED},
252b5132 2248
b80c7270
AM
2249 /* The L field in a D or X form instruction. */
2250#define L IMM20 + 1
2251 { 0x1, 21, NULL, NULL, 0 },
252b5132 2252
b80c7270
AM
2253 /* The optional L field in tlbie and tlbiel instructions. */
2254#define LOPT L + 1
2255 /* The R field in a HTM X form instruction. */
2256#define HTM_R LOPT
2257 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
252b5132 2258
b80c7270
AM
2259 /* The optional (for 32-bit) L field in cmp[l][i] instructions. */
2260#define L32OPT LOPT + 1
2261 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL32 },
252b5132 2262
b80c7270
AM
2263 /* The L field in dcbf instruction. */
2264#define L2OPT L32OPT + 1
2265 { 0x3, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
252b5132 2266
b80c7270
AM
2267 /* The LEV field in a POWER SVC / POWER9 SCV form instruction. */
2268#define SVC_LEV L2OPT + 1
2269 { 0x7f, 5, NULL, NULL, 0 },
252b5132 2270
b80c7270
AM
2271 /* The LEV field in an SC form instruction. */
2272#define LEV SVC_LEV + 1
2273 { 0x7f, 5, NULL, NULL, PPC_OPERAND_OPTIONAL },
252b5132 2274
b80c7270
AM
2275 /* The LI field in an I form instruction. The lower two bits are
2276 forced to zero. */
2277#define LI LEV + 1
2278 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
252b5132 2279
b80c7270
AM
2280 /* The LI field in an I form instruction when used as an absolute
2281 address. */
2282#define LIA LI + 1
2283 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
252b5132 2284
b80c7270
AM
2285 /* The LS or WC field in an X (sync or wait) form instruction. */
2286#define LS LIA + 1
2287#define WC LS
2288 { 0x3, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
252b5132 2289
b80c7270
AM
2290 /* The ME field in an M form instruction. */
2291#define ME LS + 1
2292#define ME_MASK (0x1f << 1)
2293 { 0x1f, 1, NULL, NULL, 0 },
989993d8 2294
b80c7270
AM
2295 /* The MB and ME fields in an M form instruction expressed a single
2296 operand which is a bitmask indicating which bits to select. This
2297 is a two operand form using PPC_OPERAND_NEXT. See the
2298 description in opcode/ppc.h for what this means. */
2299#define MBE ME + 1
2300 { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT },
2301 { -1, 0, insert_mbe, extract_mbe, 0 },
989993d8 2302
b80c7270
AM
2303 /* The MB or ME field in an MD or MDS form instruction. The high
2304 bit is wrapped to the low end. */
2305#define MB6 MBE + 2
2306#define ME6 MB6
2307#define MB6_MASK (0x3f << 5)
2308 { 0x3f, 5, insert_mb6, extract_mb6, 0 },
989993d8 2309
b80c7270
AM
2310 /* The NB field in an X form instruction. The value 32 is stored as
2311 0. */
2312#define NB MB6 + 1
2313 { 0x1f, 11, NULL, extract_nb, PPC_OPERAND_PLUS1 },
252b5132 2314
b80c7270
AM
2315 /* The NBI field in an lswi instruction, which has special value
2316 restrictions. The value 32 is stored as 0. */
2317#define NBI NB + 1
2318 { 0x1f, 11, insert_nbi, extract_nb, PPC_OPERAND_PLUS1 },
252b5132 2319
b80c7270
AM
2320 /* The NSI field in a D form instruction. This is the same as the
2321 SI field, only negated. */
2322#define NSI NBI + 1
2323 { 0xffff, 0, insert_nsi, extract_nsi,
2324 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
252b5132 2325
b80c7270
AM
2326 /* The NSI field in a D form instruction when we accept a wide range
2327 of positive values. */
2328#define NSISIGNOPT NSI + 1
2329 { 0xffff, 0, insert_nsi, extract_nsi,
2330 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
252b5132 2331
b80c7270
AM
2332 /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */
2333#define RA NSISIGNOPT + 1
2334#define RA_MASK (0x1f << 16)
2335 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR },
252b5132 2336
b80c7270
AM
2337 /* As above, but 0 in the RA field means zero, not r0. */
2338#define RA0 RA + 1
2339 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 },
73f07bff 2340
8acf1435
PB
2341 /* Similar to above, but optional. */
2342#define PRA0 RA0 + 1
2343 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
2344
b80c7270
AM
2345 /* The RA field in the DQ form lq or an lswx instruction, which have
2346 special value restrictions. */
8acf1435 2347#define RAQ PRA0 + 1
b80c7270
AM
2348#define RAX RAQ
2349 { 0x1f, 16, insert_raq, extract_raq, PPC_OPERAND_GPR_0 },
73f07bff 2350
8acf1435
PB
2351 /* Similar to above, but optional. */
2352#define PRAQ RAQ + 1
2353 { 0x1f, 16, insert_raq, extract_raq,
2354 PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
2355
2356 /* The R field in an 8-byte D, DS, DQ or X form prefix instruction. */
2357#define PCREL PRAQ + 1
2358#define PCREL_MASK (1ULL << 52)
2359 { 0x1, 52, insert_pcrel, extract_pcrel, PPC_OPERAND_OPTIONAL },
2360
2361#define PCREL0 PCREL + 1
2362 { 0x1, 52, insert_pcrel, extract_pcrel0, PPC_OPERAND_OPTIONAL },
2363
b80c7270
AM
2364 /* The RA field in a D or X form instruction which is an updating
2365 load, which means that the RA field may not be zero and may not
2366 equal the RT field. */
8acf1435 2367#define RAL PCREL0 + 1
b80c7270 2368 { 0x1f, 16, insert_ral, extract_ral, PPC_OPERAND_GPR_0 },
252b5132 2369
b80c7270
AM
2370 /* The RA field in an lmw instruction, which has special value
2371 restrictions. */
2372#define RAM RAL + 1
2373 { 0x1f, 16, insert_ram, extract_ram, PPC_OPERAND_GPR_0 },
252b5132 2374
b80c7270
AM
2375 /* The RA field in a D or X form instruction which is an updating
2376 store or an updating floating point load, which means that the RA
2377 field may not be zero. */
2378#define RAS RAM + 1
2379 { 0x1f, 16, insert_ras, extract_ras, PPC_OPERAND_GPR_0 },
73f07bff 2380
b80c7270
AM
2381 /* The RA field of the tlbwe, dccci and iccci instructions,
2382 which are optional. */
2383#define RAOPT RAS + 1
2384 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 2385
b80c7270
AM
2386 /* The RB field in an X, XO, M, or MDS form instruction. */
2387#define RB RAOPT + 1
2388#define RB_MASK (0x1f << 11)
2389 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR },
adadcc0c 2390
98553ad3
PB
2391 /* The RS and RB fields in an X form instruction when they must be the same.
2392 This is used for extended mnemonics like mr. */
2393#define RSB RB + 1
2394 { 0x1f, 11, insert_rsb, extract_rsb, PPC_OPERAND_GPR },
adadcc0c 2395
b80c7270
AM
2396 /* The RB field in an lswx instruction, which has special value
2397 restrictions. */
98553ad3 2398#define RBX RSB + 1
b80c7270 2399 { 0x1f, 11, insert_rbx, extract_rbx, PPC_OPERAND_GPR },
adadcc0c 2400
b80c7270
AM
2401 /* The RB field of the dccci and iccci instructions, which are optional. */
2402#define RBOPT RBX + 1
2403 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 2404
b80c7270
AM
2405 /* The RC register field in an maddld, maddhd or maddhdu instruction. */
2406#define RC RBOPT + 1
2407 { 0x1f, 6, NULL, NULL, PPC_OPERAND_GPR },
73f07bff 2408
b80c7270
AM
2409 /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form
2410 instruction or the RT field in a D, DS, X, XFX or XO form
2411 instruction. */
2412#define RS RC + 1
2413#define RT RS
2414#define RT_MASK (0x1f << 21)
2415#define RD RS
2416 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR },
252b5132 2417
b80c7270
AM
2418#define RD_EVEN RS + 1
2419#define RS_EVEN RD_EVEN
2420 { 0x1f, 21, insert_rD_rS_even, extract_rD_rS_even, PPC_OPERAND_GPR },
252b5132 2421
b80c7270
AM
2422 /* The RS and RT fields of the DS form stq and DQ form lq instructions,
2423 which have special value restrictions. */
2424#define RSQ RS_EVEN + 1
2425#define RTQ RSQ
2426#define Q_MASK (1 << 21)
2427 { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR },
73f07bff 2428
b80c7270
AM
2429 /* The RS field of the tlbwe instruction, which is optional. */
2430#define RSO RSQ + 1
2431#define RTO RSO
2432 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 2433
b80c7270
AM
2434 /* The RX field of the SE_RR form instruction. */
2435#define RX RSO + 1
2436 { 0x1f, PPC_OPSHIFT_INV, insert_rx, extract_rx, PPC_OPERAND_GPR },
252b5132 2437
b80c7270
AM
2438 /* The ARX field of the SE_RR form instruction. */
2439#define ARX RX + 1
2440 { 0x1f, PPC_OPSHIFT_INV, insert_arx, extract_arx, PPC_OPERAND_GPR },
252b5132 2441
b80c7270
AM
2442 /* The RY field of the SE_RR form instruction. */
2443#define RY ARX + 1
2444#define RZ RY
2445 { 0x1f, PPC_OPSHIFT_INV, insert_ry, extract_ry, PPC_OPERAND_GPR },
252b5132 2446
b80c7270
AM
2447 /* The ARY field of the SE_RR form instruction. */
2448#define ARY RY + 1
2449 { 0x1f, PPC_OPSHIFT_INV, insert_ary, extract_ary, PPC_OPERAND_GPR },
989993d8 2450
b80c7270
AM
2451 /* The SCLSCI8 field in a D form instruction. */
2452#define SCLSCI8 ARY + 1
2453 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8, extract_sci8, 0 },
989993d8 2454
b80c7270
AM
2455 /* The SCLSCI8N field in a D form instruction. This is the same as the
2456 SCLSCI8 field, only negated. */
2457#define SCLSCI8N SCLSCI8 + 1
2458 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8n, extract_sci8n,
2459 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
989993d8 2460
b80c7270
AM
2461 /* The SD field of the SD4 form instruction. */
2462#define SE_SD SCLSCI8N + 1
2463 { 0xf, 8, NULL, NULL, PPC_OPERAND_PARENS },
73f07bff 2464
b80c7270
AM
2465 /* The SD field of the SD4 form instruction, for halfword. */
2466#define SE_SDH SE_SD + 1
71553718 2467 { 0x1e, 7, NULL, NULL, PPC_OPERAND_PARENS },
73f07bff 2468
b80c7270
AM
2469 /* The SD field of the SD4 form instruction, for word. */
2470#define SE_SDW SE_SDH + 1
71553718 2471 { 0x3c, 6, NULL, NULL, PPC_OPERAND_PARENS },
b9c361e0 2472
b80c7270
AM
2473 /* The SH field in an X or M form instruction. */
2474#define SH SE_SDW + 1
2475#define SH_MASK (0x1f << 11)
2476 /* The other UIMM field in a EVX form instruction. */
2477#define EVUIMM SH
2478 /* The FC field in an atomic X form instruction. */
2479#define FC SH
2480 { 0x1f, 11, NULL, NULL, 0 },
b9c361e0 2481
74081948
AF
2482#define EVUIMM_LT8 SH + 1
2483 { 0x1f, 11, insert_evuimm_lt8, extract_evuimm_lt8, 0 },
2484
2485#define EVUIMM_LT16 EVUIMM_LT8 + 1
b80c7270 2486 { 0x1f, 11, insert_evuimm_lt16, extract_evuimm_lt16, 0 },
b9c361e0 2487
b80c7270
AM
2488 /* The SI field in a HTM X form instruction. */
2489#define HTM_SI EVUIMM_LT16 + 1
2490 { 0x1f, 11, NULL, NULL, PPC_OPERAND_SIGNED },
943d398f 2491
b80c7270
AM
2492 /* The SH field in an MD form instruction. This is split. */
2493#define SH6 HTM_SI + 1
2494#define SH6_MASK ((0x1f << 11) | (1 << 1))
2495 { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_sh6, 0 },
b9c361e0 2496
b80c7270
AM
2497 /* The SH field of some variants of the tlbre and tlbwe
2498 instructions, and the ELEV field of the e_sc instruction. */
2499#define SHO SH6 + 1
2500#define ELEV SHO
2501 { 0x1f, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 2502
b80c7270
AM
2503 /* The SI field in a D form instruction. */
2504#define SI SHO + 1
2505 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
b9c361e0 2506
b80c7270
AM
2507 /* The SI field in a D form instruction when we accept a wide range
2508 of positive values. */
2509#define SISIGNOPT SI + 1
2510 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
b9c361e0 2511
b80c7270
AM
2512 /* The SI8 field in a D form instruction. */
2513#define SI8 SISIGNOPT + 1
2514 { 0xff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
b9c361e0 2515
b80c7270
AM
2516 /* The SPR field in an XFX form instruction. This is flipped--the
2517 lower 5 bits are stored in the upper 5 and vice- versa. */
2518#define SPR SI8 + 1
2519#define PMR SPR
2520#define TMR SPR
2521#define SPR_MASK (0x3ff << 11)
2522 { 0x3ff, 11, insert_spr, extract_spr, PPC_OPERAND_SPR },
b9c361e0 2523
b80c7270
AM
2524 /* The BAT index number in an XFX form m[ft]ibat[lu] instruction. */
2525#define SPRBAT SPR + 1
fa758a70
AC
2526#define SPRBAT_MASK (0xc1 << 11)
2527 { 0x7, PPC_OPSHIFT_INV, insert_sprbat, extract_sprbat, PPC_OPERAND_SPR },
2528
2529 /* The GQR index number in an XFX form m[ft]gqr instruction. */
2530#define SPRGQR SPRBAT + 1
2531#define SPRGQR_MASK (0x7 << 16)
2532 { 0x7, 16, NULL, NULL, PPC_OPERAND_GQR },
b9c361e0 2533
b80c7270 2534 /* The SPRG register number in an XFX form m[ft]sprg instruction. */
fa758a70 2535#define SPRG SPRGQR + 1
b80c7270 2536 { 0x1f, 16, insert_sprg, extract_sprg, PPC_OPERAND_SPR },
b9c361e0 2537
b80c7270
AM
2538 /* The SR field in an X form instruction. */
2539#define SR SPRG + 1
2540 /* The 4-bit UIMM field in a VX form instruction. */
2541#define UIMM4 SR
2542 { 0xf, 16, NULL, NULL, 0 },
b9c361e0 2543
b80c7270
AM
2544 /* The STRM field in an X AltiVec form instruction. */
2545#define STRM SR + 1
2546 /* The T field in a tlbilx form instruction. */
2547#define T STRM
2548 /* The L field in wclr instructions. */
2549#define L2 STRM
2550 { 0x3, 21, NULL, NULL, 0 },
252b5132 2551
b80c7270
AM
2552 /* The ESYNC field in an X (sync) form instruction. */
2553#define ESYNC STRM + 1
2554 { 0xf, 16, insert_esync, extract_esync, PPC_OPERAND_OPTIONAL },
252b5132 2555
b80c7270
AM
2556 /* The SV field in a POWER SC form instruction. */
2557#define SV ESYNC + 1
2558 { 0x3fff, 2, NULL, NULL, 0 },
252b5132 2559
b80c7270
AM
2560 /* The TBR field in an XFX form instruction. This is like the SPR
2561 field, but it is optional. */
2562#define TBR SV + 1
2563 { 0x3ff, 11, insert_tbr, extract_tbr,
9cf7e568 2564 PPC_OPERAND_SPR | PPC_OPERAND_OPTIONAL },
252b5132 2565
b80c7270 2566 /* The TO field in a D or X form instruction. */
9cf7e568 2567#define TO TBR + 1
b80c7270
AM
2568#define DUI TO
2569#define TO_MASK (0x1f << 21)
2570 { 0x1f, 21, NULL, NULL, 0 },
252b5132 2571
b80c7270
AM
2572 /* The UI field in a D form instruction. */
2573#define UI TO + 1
2574 { 0xffff, 0, NULL, NULL, 0 },
252b5132 2575
b80c7270
AM
2576#define UISIGNOPT UI + 1
2577 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNOPT },
da99ee72 2578
b80c7270
AM
2579 /* The IMM field in an SE_IM5 instruction. */
2580#define UI5 UISIGNOPT + 1
2581 { 0x1f, 4, NULL, NULL, 0 },
da99ee72 2582
b80c7270
AM
2583 /* The OIMM field in an SE_OIM5 instruction. */
2584#define OIMM5 UI5 + 1
71553718 2585 { 0x1f, 4, insert_oimm, extract_oimm, PPC_OPERAND_PLUS1 },
da99ee72 2586
b80c7270
AM
2587 /* The UI7 field in an SE_LI instruction. */
2588#define UI7 OIMM5 + 1
2589 { 0x7f, 4, NULL, NULL, 0 },
da99ee72 2590
b80c7270
AM
2591 /* The VA field in a VA, VX or VXR form instruction. */
2592#define VA UI7 + 1
2593 { 0x1f, 16, NULL, NULL, PPC_OPERAND_VR },
da99ee72 2594
b80c7270
AM
2595 /* The VB field in a VA, VX or VXR form instruction. */
2596#define VB VA + 1
2597 { 0x1f, 11, NULL, NULL, PPC_OPERAND_VR },
da99ee72 2598
b80c7270
AM
2599 /* The VC field in a VA form instruction. */
2600#define VC VB + 1
2601 { 0x1f, 6, NULL, NULL, PPC_OPERAND_VR },
252b5132 2602
b80c7270
AM
2603 /* The VD or VS field in a VA, VX, VXR or X form instruction. */
2604#define VD VC + 1
2605#define VS VD
2606 { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR },
252b5132 2607
b80c7270
AM
2608 /* The SIMM field in a VX form instruction, and TE in Z form. */
2609#define SIMM VD + 1
2610#define TE SIMM
2611 { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED},
252b5132 2612
b80c7270
AM
2613 /* The UIMM field in a VX form instruction. */
2614#define UIMM SIMM + 1
2615#define DCTL UIMM
2616 { 0x1f, 16, NULL, NULL, 0 },
9b4e5766 2617
b80c7270
AM
2618 /* The 3-bit UIMM field in a VX form instruction. */
2619#define UIMM3 UIMM + 1
2620 { 0x7, 16, NULL, NULL, 0 },
9b4e5766 2621
b80c7270
AM
2622 /* The 6-bit UIM field in a X form instruction. */
2623#define UIM6 UIMM3 + 1
2624 { 0x3f, 16, NULL, NULL, 0 },
9b4e5766 2625
b80c7270
AM
2626 /* The SIX field in a VX form instruction. */
2627#define SIX UIM6 + 1
74081948 2628#define MMMM SIX
b80c7270 2629 { 0xf, 11, NULL, NULL, 0 },
9b4e5766 2630
b80c7270
AM
2631 /* The PS field in a VX form instruction. */
2632#define PS SIX + 1
2633 { 0x1, 9, NULL, NULL, 0 },
a680de9a 2634
b80c7270
AM
2635 /* The SHB field in a VA form instruction. */
2636#define SHB PS + 1
2637 { 0xf, 6, NULL, NULL, 0 },
a680de9a 2638
b80c7270 2639 /* The other UIMM field in a half word EVX form instruction. */
74081948
AF
2640#define EVUIMM_1 SHB + 1
2641 { 0x1f, 11, NULL, NULL, PPC_OPERAND_PARENS },
2642
2643#define EVUIMM_1_EX0 EVUIMM_1 + 1
2644 { 0x1f, 11, insert_evuimm1_ex0, extract_evuimm1_ex0, PPC_OPERAND_PARENS },
2645
2646#define EVUIMM_2 EVUIMM_1_EX0 + 1
b80c7270 2647 { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 2648
b80c7270
AM
2649#define EVUIMM_2_EX0 EVUIMM_2 + 1
2650 { 0x3e, 10, insert_evuimm2_ex0, extract_evuimm2_ex0, PPC_OPERAND_PARENS },
9b4e5766 2651
b80c7270
AM
2652 /* The other UIMM field in a word EVX form instruction. */
2653#define EVUIMM_4 EVUIMM_2_EX0 + 1
2654 { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 2655
b80c7270
AM
2656#define EVUIMM_4_EX0 EVUIMM_4 + 1
2657 { 0x7c, 9, insert_evuimm4_ex0, extract_evuimm4_ex0, PPC_OPERAND_PARENS },
9b4e5766 2658
b80c7270
AM
2659 /* The other UIMM field in a double EVX form instruction. */
2660#define EVUIMM_8 EVUIMM_4_EX0 + 1
2661 { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 2662
b80c7270
AM
2663#define EVUIMM_8_EX0 EVUIMM_8 + 1
2664 { 0xf8, 8, insert_evuimm8_ex0, extract_evuimm8_ex0, PPC_OPERAND_PARENS },
9b4e5766 2665
b80c7270
AM
2666 /* The WS or DRM field in an X form instruction. */
2667#define WS EVUIMM_8_EX0 + 1
2668#define DRM WS
74081948
AF
2669 /* The NNN field in a VX form instruction for SPE2 */
2670#define NNN WS
b80c7270 2671 { 0x7, 11, NULL, NULL, 0 },
9b4e5766 2672
b80c7270
AM
2673 /* PowerPC paired singles extensions. */
2674 /* W bit in the pair singles instructions for x type instructions. */
2675#define PSWM WS + 1
2676 /* The BO16 field in a BD8 form instruction. */
2677#define BO16 PSWM
2678 { 0x1, 10, 0, 0, 0 },
9b4e5766 2679
b80c7270
AM
2680 /* IDX bits for quantization in the pair singles instructions. */
2681#define PSQ PSWM + 1
2682 { 0x7, 12, 0, 0, PPC_OPERAND_GQR },
066be9f7 2683
b80c7270
AM
2684 /* IDX bits for quantization in the pair singles x-type instructions. */
2685#define PSQM PSQ + 1
2686 { 0x7, 7, 0, 0, PPC_OPERAND_GQR },
066be9f7 2687
b80c7270
AM
2688 /* Smaller D field for quantization in the pair singles instructions. */
2689#define PSD PSQM + 1
2690 { 0xfff, 0, 0, 0, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
066be9f7 2691
b80c7270
AM
2692 /* The L field in an mtmsrd or A form instruction or R or W in an
2693 X form. */
2694#define A_L PSD + 1
2695#define W A_L
2696#define X_R A_L
2697 { 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL },
066be9f7 2698
b80c7270
AM
2699 /* The RMC or CY field in a Z23 form instruction. */
2700#define RMC A_L + 1
2701#define CY RMC
2702 { 0x3, 9, NULL, NULL, 0 },
066be9f7 2703
b80c7270
AM
2704#define R RMC + 1
2705 { 0x1, 16, NULL, NULL, 0 },
066be9f7 2706
b80c7270
AM
2707#define RIC R + 1
2708 { 0x3, 18, NULL, NULL, PPC_OPERAND_OPTIONAL },
7b934113 2709
b80c7270
AM
2710#define PRS RIC + 1
2711 { 0x1, 17, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 2712
b80c7270
AM
2713#define SP PRS + 1
2714 { 0x3, 19, NULL, NULL, 0 },
b9c361e0 2715
b80c7270
AM
2716#define S SP + 1
2717 { 0x1, 20, NULL, NULL, 0 },
b9c361e0 2718
b80c7270
AM
2719 /* The S field in a XL form instruction. */
2720#define SXL S + 1
9cf7e568 2721 { 0x1, 11, insert_sxl, extract_sxl, PPC_OPERAND_OPTIONAL },
b80c7270
AM
2722
2723 /* SH field starting at bit position 16. */
9cf7e568 2724#define SH16 SXL + 1
b80c7270
AM
2725 /* The DCM and DGM fields in a Z form instruction. */
2726#define DCM SH16
2727#define DGM DCM
2728 { 0x3f, 10, NULL, NULL, 0 },
2729
2730 /* The EH field in larx instruction. */
2731#define EH SH16 + 1
2732 { 0x1, 0, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 2733
b80c7270
AM
2734 /* The L field in an mtfsf or XFL form instruction. */
2735 /* The A field in a HTM X form instruction. */
2736#define XFL_L EH + 1
2737#define HTM_A XFL_L
2738 { 0x1, 25, NULL, NULL, PPC_OPERAND_OPTIONAL},
b9c361e0 2739
b80c7270
AM
2740 /* Xilinx APU related masks and macros */
2741#define FCRT XFL_L + 1
2742#define FCRT_MASK (0x1f << 21)
2743 { 0x1f, 21, 0, 0, PPC_OPERAND_FCR },
b9c361e0 2744
b80c7270
AM
2745 /* Xilinx FSL related masks and macros */
2746#define FSL FCRT + 1
2747#define FSL_MASK (0x1f << 11)
2748 { 0x1f, 11, 0, 0, PPC_OPERAND_FSL },
b9c361e0 2749
b80c7270
AM
2750 /* Xilinx UDI related masks and macros */
2751#define URT FSL + 1
2752 { 0x1f, 21, 0, 0, PPC_OPERAND_UDI },
b9c361e0 2753
b80c7270
AM
2754#define URA URT + 1
2755 { 0x1f, 16, 0, 0, PPC_OPERAND_UDI },
b9c361e0 2756
b80c7270
AM
2757#define URB URA + 1
2758 { 0x1f, 11, 0, 0, PPC_OPERAND_UDI },
b9c361e0 2759
b80c7270
AM
2760#define URC URB + 1
2761 { 0x1f, 6, 0, 0, PPC_OPERAND_UDI },
e3c2f928 2762
b80c7270
AM
2763 /* The VLESIMM field in a D form instruction. */
2764#define VLESIMM URC + 1
2765 { 0xffff, PPC_OPSHIFT_INV, insert_vlesi, extract_vlesi,
2766 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
e3c2f928 2767
b80c7270
AM
2768 /* The VLENSIMM field in a D form instruction. */
2769#define VLENSIMM VLESIMM + 1
2770 { 0xffff, PPC_OPSHIFT_INV, insert_vlensi, extract_vlensi,
2771 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
e3c2f928 2772
b80c7270
AM
2773 /* The VLEUIMM field in a D form instruction. */
2774#define VLEUIMM VLENSIMM + 1
2775 { 0xffff, PPC_OPSHIFT_INV, insert_vleui, extract_vleui, 0 },
e3c2f928 2776
b80c7270
AM
2777 /* The VLEUIMML field in a D form instruction. */
2778#define VLEUIMML VLEUIMM + 1
2779 { 0xffff, PPC_OPSHIFT_INV, insert_vleil, extract_vleil, 0 },
e3c2f928 2780
b80c7270
AM
2781 /* The XT and XS fields in an XX1 or XX3 form instruction. This is
2782 split. */
2783#define XS6 VLEUIMML + 1
2784#define XT6 XS6
2785 { 0x3f, PPC_OPSHIFT_INV, insert_xt6, extract_xt6, PPC_OPERAND_VSR },
e3c2f928 2786
b80c7270
AM
2787 /* The XT and XS fields in an DQ form VSX instruction. This is split. */
2788#define XSQ6 XT6 + 1
2789#define XTQ6 XSQ6
2790 { 0x3f, PPC_OPSHIFT_INV, insert_xtq6, extract_xtq6, PPC_OPERAND_VSR },
e3c2f928 2791
8acf1435
PB
2792 /* The XT field in a plxv instruction. Runs into the OP field. */
2793#define XTOP XSQ6 + 1
2794 { 0x3f, 21, NULL, NULL, PPC_OPERAND_VSR },
2795
b80c7270 2796 /* The XA field in an XX3 form instruction. This is split. */
8acf1435 2797#define XA6 XTOP + 1
b80c7270 2798 { 0x3f, PPC_OPSHIFT_INV, insert_xa6, extract_xa6, PPC_OPERAND_VSR },
e3c2f928 2799
b80c7270
AM
2800 /* The XB field in an XX2 or XX3 form instruction. This is split. */
2801#define XB6 XA6 + 1
2802 { 0x3f, PPC_OPSHIFT_INV, insert_xb6, extract_xb6, PPC_OPERAND_VSR },
e3c2f928 2803
98553ad3
PB
2804 /* The XA and XB fields in an XX3 form instruction when they must be the same.
2805 This is used in extended mnemonics like xvmovdp. This is split. */
2806#define XAB6 XB6 + 1
2807 { 0x3f, PPC_OPSHIFT_INV, insert_xab6, extract_xab6, PPC_OPERAND_VSR },
e3c2f928 2808
b80c7270 2809 /* The XC field in an XX4 form instruction. This is split. */
98553ad3 2810#define XC6 XAB6 + 1
b80c7270 2811 { 0x3f, PPC_OPSHIFT_INV, insert_xc6, extract_xc6, PPC_OPERAND_VSR },
e3c2f928 2812
b80c7270
AM
2813 /* The DM or SHW field in an XX3 form instruction. */
2814#define DM XC6 + 1
2815#define SHW DM
2816 { 0x3, 8, NULL, NULL, 0 },
e3c2f928 2817
b80c7270
AM
2818 /* The DM field in an extended mnemonic XX3 form instruction. */
2819#define DMEX DM + 1
2820 { 0x3, 8, insert_dm, extract_dm, 0 },
e3c2f928 2821
b80c7270
AM
2822 /* The UIM field in an XX2 form instruction. */
2823#define UIM DMEX + 1
2824 /* The 2-bit UIMM field in a VX form instruction. */
2825#define UIMM2 UIM
2826 /* The 2-bit L field in a darn instruction. */
2827#define LRAND UIM
2828 { 0x3, 16, NULL, NULL, 0 },
e3c2f928 2829
b80c7270
AM
2830#define ERAT_T UIM + 1
2831 { 0x7, 21, NULL, NULL, 0 },
e3c2f928 2832
b80c7270
AM
2833#define IH ERAT_T + 1
2834 { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
e3c2f928 2835
b80c7270
AM
2836 /* The 8-bit IMM8 field in a XX1 form instruction. */
2837#define IMM8 IH + 1
2838 { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT },
e3c2f928 2839
b80c7270
AM
2840#define VX_OFF IMM8 + 1
2841 { 0x3, 0, insert_off_lsp, extract_off_lsp, 0 },
74081948
AF
2842
2843#define VX_OFF_SPE2 VX_OFF + 1
2844 { 0x7, 0, insert_off_spe2, extract_off_spe2, 0 },
2845
2846#define BBB VX_OFF_SPE2 + 1
2847 { 0x7, 13, NULL, NULL, 0 },
2848
2849#define DDD BBB + 1
2850#define VX_MASK_DDD (VX_MASK & ~0x1)
2851 { 0x7, PPC_OPSHIFT_INV, insert_Ddd, extract_Ddd, 0 },
2852
2853#define HH DDD + 1
2854 { 0x3, 13, NULL, NULL, 0 },
b80c7270
AM
2855};
2856
2857const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
2858 / sizeof (powerpc_operands[0]));
252b5132
RH
2859\f
2860/* Macros used to form opcodes. */
2861
2862/* The main opcode. */
0f873fd5 2863#define OP(x) ((((uint64_t)(x)) & 0x3f) << 26)
252b5132
RH
2864#define OP_MASK OP (0x3f)
2865
dd7efa79
PB
2866/* The prefix opcode. */
2867#define PREFIX_OP (1ULL << 58)
2868
2869/* The 2-bit prefix form. */
2870#define PREFIX_FORM(x) ((x & 3ULL) << 56)
2871
2872#define SUFFIX_MASK ((1ULL << 32) - 1)
2873#define PREFIX_MASK (SUFFIX_MASK << 32)
2874
8acf1435
PB
2875/* Prefix insn, eight byte load/store form 8LS. */
2876#define P8LS (PREFIX_OP | PREFIX_FORM (0))
2877
2878/* Prefix insn, modified load/store form MLS. */
2879#define PMLS (PREFIX_OP | PREFIX_FORM (2))
2880
dd7efa79
PB
2881/* Prefix insn, modified register to register form MRR. */
2882#define PMRR (PREFIX_OP | PREFIX_FORM (3))
2883
8acf1435
PB
2884/* An 8-byte D form prefix instruction. */
2885#define P_D_MASK (((-1ULL << 50) & ~PCREL_MASK) | OP_MASK)
2886
2887/* The same as P_D_MASK, but with the RA and PCREL fields specified. */
2888#define P_DRAPCREL_MASK (P_D_MASK | PCREL_MASK | RA_MASK)
2889
252b5132
RH
2890/* The main opcode combined with a trap code in the TO field of a D
2891 form instruction. Used for extended mnemonics for the trap
2892 instructions. */
0f873fd5 2893#define OPTO(x,to) (OP (x) | ((((uint64_t)(to)) & 0x1f) << 21))
252b5132
RH
2894#define OPTO_MASK (OP_MASK | TO_MASK)
2895
2896/* The main opcode combined with a comparison size bit in the L field
2897 of a D form or X form instruction. Used for extended mnemonics for
2898 the comparison instructions. */
0f873fd5 2899#define OPL(x,l) (OP (x) | ((((uint64_t)(l)) & 1) << 21))
252b5132
RH
2900#define OPL_MASK OPL (0x3f,1)
2901
b9c361e0
JL
2902/* The main opcode combined with an update code in D form instruction.
2903 Used for extended mnemonics for VLE memory instructions. */
0f873fd5 2904#define OPVUP(x,vup) (OP (x) | ((((uint64_t)(vup)) & 0xff) << 8))
b9c361e0
JL
2905#define OPVUP_MASK OPVUP (0x3f, 0xff)
2906
b80c7270
AM
2907/* The main opcode combined with an update code and the RT fields
2908 specified in D form instruction. Used for VLE volatile context
2909 save/restore instructions. */
2910#define OPVUPRT(x,vup,rt) \
2911 (OPVUP (x, vup) \
0f873fd5 2912 | ((((uint64_t)(rt)) & 0x1f) << 21))
dfdaec14
AJ
2913#define OPVUPRT_MASK OPVUPRT (0x3f, 0xff, 0x1f)
2914
252b5132 2915/* An A form instruction. */
b80c7270
AM
2916#define A(op, xop, rc) \
2917 (OP (op) \
0f873fd5
PB
2918 | ((((uint64_t)(xop)) & 0x1f) << 1) \
2919 | (((uint64_t)(rc)) & 1))
252b5132
RH
2920#define A_MASK A (0x3f, 0x1f, 1)
2921
2922/* An A_MASK with the FRB field fixed. */
2923#define AFRB_MASK (A_MASK | FRB_MASK)
2924
2925/* An A_MASK with the FRC field fixed. */
2926#define AFRC_MASK (A_MASK | FRC_MASK)
2927
2928/* An A_MASK with the FRA and FRC fields fixed. */
2929#define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK)
2930
702f0fb4 2931/* An AFRAFRC_MASK, but with L bit clear. */
0f873fd5 2932#define AFRALFRC_MASK (AFRAFRC_MASK & ~((uint64_t) 1 << 16))
702f0fb4 2933
252b5132 2934/* A B form instruction. */
b80c7270
AM
2935#define B(op, aa, lk) \
2936 (OP (op) \
0f873fd5 2937 | ((((uint64_t)(aa)) & 1) << 1) \
b80c7270 2938 | ((lk) & 1))
252b5132
RH
2939#define B_MASK B (0x3f, 1, 1)
2940
b9c361e0 2941/* A BD8 form instruction. This is a 16-bit instruction. */
b80c7270 2942#define BD8(op, aa, lk) \
0f873fd5 2943 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270
AM
2944 | (((aa) & 1) << 9) \
2945 | (((lk) & 1) << 8))
b9c361e0
JL
2946#define BD8_MASK BD8 (0x3f, 1, 1)
2947
2948/* Another BD8 form instruction. This is a 16-bit instruction. */
0f873fd5 2949#define BD8IO(op) ((((uint64_t)(op)) & 0x1f) << 11)
b9c361e0
JL
2950#define BD8IO_MASK BD8IO (0x1f)
2951
2952/* A BD8 form instruction for simplified mnemonics. */
2953#define EBD8IO(op, bo, bi) (BD8IO ((op)) | ((bo) << 10) | ((bi) << 8))
2954/* A mask that excludes BO32 and BI32. */
2955#define EBD8IO1_MASK 0xf800
2956/* A mask that includes BO32 and excludes BI32. */
2957#define EBD8IO2_MASK 0xfc00
2958/* A mask that include BO32 AND BI32. */
2959#define EBD8IO3_MASK 0xff00
2960
2961/* A BD15 form instruction. */
b80c7270
AM
2962#define BD15(op, aa, lk) \
2963 (OP (op) \
0f873fd5 2964 | ((((uint64_t)(aa)) & 0xf) << 22) \
b80c7270 2965 | ((lk) & 1))
b9c361e0
JL
2966#define BD15_MASK BD15 (0x3f, 0xf, 1)
2967
2968/* A BD15 form instruction for extended conditional branch mnemonics. */
b80c7270 2969#define EBD15(op, aa, bo, lk) \
2480b6fa 2970 (((op) & 0x3fu) << 26) \
b80c7270
AM
2971 | (((aa) & 0xf) << 22) \
2972 | (((bo) & 0x3) << 20) \
2973 | ((lk) & 1)
b9c361e0
JL
2974#define EBD15_MASK 0xfff00001
2975
b80c7270
AM
2976/* A BD15 form instruction for extended conditional branch mnemonics
2977 with BI. */
2978#define EBD15BI(op, aa, bo, bi, lk) \
2480b6fa 2979 ((((op) & 0x3fu) << 26) \
b80c7270
AM
2980 | (((aa) & 0xf) << 22) \
2981 | (((bo) & 0x3) << 20) \
2982 | (((bi) & 0x3) << 16) \
2983 | ((lk) & 1))
2984
b9c361e0
JL
2985#define EBD15BI_MASK 0xfff30001
2986
2987/* A BD24 form instruction. */
b80c7270
AM
2988#define BD24(op, aa, lk) \
2989 (OP (op) \
0f873fd5 2990 | ((((uint64_t)(aa)) & 1) << 25) \
b80c7270 2991 | ((lk) & 1))
b9c361e0
JL
2992#define BD24_MASK BD24 (0x3f, 1, 1)
2993
252b5132 2994/* A B form instruction setting the BO field. */
b80c7270
AM
2995#define BBO(op, bo, aa, lk) \
2996 (B ((op), (aa), (lk)) \
0f873fd5 2997 | ((((uint64_t)(bo)) & 0x1f) << 21))
252b5132
RH
2998#define BBO_MASK BBO (0x3f, 0x1f, 1, 1)
2999
3000/* A BBO_MASK with the y bit of the BO field removed. This permits
3001 matching a conditional branch regardless of the setting of the y
94efba12 3002 bit. Similarly for the 'at' bits used for power4 branch hints. */
0f873fd5
PB
3003#define Y_MASK (((uint64_t) 1) << 21)
3004#define AT1_MASK (((uint64_t) 3) << 21)
3005#define AT2_MASK (((uint64_t) 9) << 21)
802a735e
AM
3006#define BBOY_MASK (BBO_MASK &~ Y_MASK)
3007#define BBOAT_MASK (BBO_MASK &~ AT1_MASK)
252b5132
RH
3008
3009/* A B form instruction setting the BO field and the condition bits of
3010 the BI field. */
3011#define BBOCB(op, bo, cb, aa, lk) \
0f873fd5 3012 (BBO ((op), (bo), (aa), (lk)) | ((((uint64_t)(cb)) & 0x3) << 16))
252b5132
RH
3013#define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1)
3014
3015/* A BBOCB_MASK with the y bit of the BO field removed. */
3016#define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK)
802a735e
AM
3017#define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK)
3018#define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK)
252b5132
RH
3019
3020/* A BBOYCB_MASK in which the BI field is fixed. */
3021#define BBOYBI_MASK (BBOYCB_MASK | BI_MASK)
802a735e 3022#define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK)
252b5132 3023
b9c361e0 3024/* A VLE C form instruction. */
0f873fd5 3025#define C_LK(x, lk) (((((uint64_t)(x)) & 0x7fff) << 1) | ((lk) & 1))
b9c361e0 3026#define C_LK_MASK C_LK(0x7fff, 1)
0f873fd5 3027#define C(x) ((((uint64_t)(x)) & 0xffff))
b9c361e0
JL
3028#define C_MASK C(0xffff)
3029
23976049 3030/* An Context form instruction. */
0f873fd5 3031#define CTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7))
fdd12ef3 3032#define CTX_MASK CTX(0x3f, 0x7)
23976049
EZ
3033
3034/* An User Context form instruction. */
0f873fd5 3035#define UCTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f))
fdd12ef3 3036#define UCTX_MASK UCTX(0x3f, 0x1f)
23976049 3037
252b5132
RH
3038/* The main opcode mask with the RA field clear. */
3039#define DRA_MASK (OP_MASK | RA_MASK)
3040
a680de9a
PB
3041/* A DQ form VSX instruction. */
3042#define DQX(op, xop) (OP (op) | ((xop) & 0x7))
3043#define DQX_MASK DQX (0x3f, 7)
3044
252b5132
RH
3045/* A DS form instruction. */
3046#define DSO(op, xop) (OP (op) | ((xop) & 0x3))
3047#define DS_MASK DSO (0x3f, 3)
3048
a680de9a 3049/* An DX form instruction. */
0f873fd5 3050#define DX(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
a680de9a 3051#define DX_MASK DX (0x3f, 0x1f)
1437d063
PB
3052/* An DX form instruction with the D bits specified. */
3053#define NODX_MASK (DX_MASK | 0x1fffc1)
a680de9a 3054
23976049 3055/* An EVSEL form instruction. */
0f873fd5 3056#define EVSEL(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xff) << 3)
23976049
EZ
3057#define EVSEL_MASK EVSEL(0x3f, 0xff)
3058
b9c361e0 3059/* An IA16 form instruction. */
0f873fd5 3060#define IA16(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
3061#define IA16_MASK IA16(0x3f, 0x1f)
3062
3063/* An I16A form instruction. */
0f873fd5 3064#define I16A(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
3065#define I16A_MASK I16A(0x3f, 0x1f)
3066
3067/* An I16L form instruction. */
0f873fd5 3068#define I16L(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
3069#define I16L_MASK I16L(0x3f, 0x1f)
3070
3071/* An IM7 form instruction. */
0f873fd5 3072#define IM7(op) ((((uint64_t)(op)) & 0x1f) << 11)
b9c361e0
JL
3073#define IM7_MASK IM7(0x1f)
3074
252b5132
RH
3075/* An M form instruction. */
3076#define M(op, rc) (OP (op) | ((rc) & 1))
3077#define M_MASK M (0x3f, 1)
3078
b9c361e0 3079/* An LI20 form instruction. */
0f873fd5 3080#define LI20(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1) << 15)
b9c361e0
JL
3081#define LI20_MASK LI20(0x3f, 0x1)
3082
252b5132 3083/* An M form instruction with the ME field specified. */
b80c7270
AM
3084#define MME(op, me, rc) \
3085 (M ((op), (rc)) \
0f873fd5 3086 | ((((uint64_t)(me)) & 0x1f) << 1))
252b5132
RH
3087
3088/* An M_MASK with the MB and ME fields fixed. */
3089#define MMBME_MASK (M_MASK | MB_MASK | ME_MASK)
3090
3091/* An M_MASK with the SH and ME fields fixed. */
3092#define MSHME_MASK (M_MASK | SH_MASK | ME_MASK)
3093
3094/* An MD form instruction. */
b80c7270
AM
3095#define MD(op, xop, rc) \
3096 (OP (op) \
0f873fd5 3097 | ((((uint64_t)(xop)) & 0x7) << 2) \
b80c7270 3098 | ((rc) & 1))
252b5132
RH
3099#define MD_MASK MD (0x3f, 0x7, 1)
3100
3101/* An MD_MASK with the MB field fixed. */
3102#define MDMB_MASK (MD_MASK | MB6_MASK)
3103
3104/* An MD_MASK with the SH field fixed. */
3105#define MDSH_MASK (MD_MASK | SH6_MASK)
3106
3107/* An MDS form instruction. */
b80c7270
AM
3108#define MDS(op, xop, rc) \
3109 (OP (op) \
0f873fd5 3110 | ((((uint64_t)(xop)) & 0xf) << 1) \
b80c7270 3111 | ((rc) & 1))
252b5132
RH
3112#define MDS_MASK MDS (0x3f, 0xf, 1)
3113
3114/* An MDS_MASK with the MB field fixed. */
3115#define MDSMB_MASK (MDS_MASK | MB6_MASK)
3116
3117/* An SC form instruction. */
b80c7270
AM
3118#define SC(op, sa, lk) \
3119 (OP (op) \
0f873fd5 3120 | ((((uint64_t)(sa)) & 1) << 1) \
b80c7270
AM
3121 | ((lk) & 1))
3122#define SC_MASK \
3123 (OP_MASK \
0f873fd5
PB
3124 | (((uint64_t) 0x3ff) << 16) \
3125 | (((uint64_t) 1) << 1) \
b80c7270 3126 | 1)
252b5132 3127
b9c361e0 3128/* An SCI8 form instruction. */
0f873fd5 3129#define SCI8(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 11))
b9c361e0
JL
3130#define SCI8_MASK SCI8(0x3f, 0x1f)
3131
3132/* An SCI8 form instruction. */
b80c7270
AM
3133#define SCI8BF(op, fop, xop) \
3134 (OP (op) \
0f873fd5 3135 | ((((uint64_t)(xop)) & 0x1f) << 11) \
b80c7270 3136 | (((fop) & 7) << 23))
b9c361e0
JL
3137#define SCI8BF_MASK SCI8BF(0x3f, 7, 0x1f)
3138
3139/* An SD4 form instruction. This is a 16-bit instruction. */
0f873fd5 3140#define SD4(op) ((((uint64_t)(op)) & 0xf) << 12)
b9c361e0
JL
3141#define SD4_MASK SD4(0xf)
3142
3143/* An SE_IM5 form instruction. This is a 16-bit instruction. */
b80c7270 3144#define SE_IM5(op, xop) \
0f873fd5 3145 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 3146 | (((xop) & 0x1) << 9))
b9c361e0
JL
3147#define SE_IM5_MASK SE_IM5(0x3f, 1)
3148
3149/* An SE_R form instruction. This is a 16-bit instruction. */
b80c7270 3150#define SE_R(op, xop) \
0f873fd5 3151 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 3152 | (((xop) & 0x3f) << 4))
b9c361e0
JL
3153#define SE_R_MASK SE_R(0x3f, 0x3f)
3154
3155/* An SE_RR form instruction. This is a 16-bit instruction. */
b80c7270 3156#define SE_RR(op, xop) \
0f873fd5 3157 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 3158 | (((xop) & 0x3) << 8))
b9c361e0
JL
3159#define SE_RR_MASK SE_RR(0x3f, 3)
3160
3161/* A VX form instruction. */
0f873fd5 3162#define VX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
786e2c0f 3163
112290ab 3164/* The mask for an VX form instruction. */
786e2c0f
C
3165#define VX_MASK VX(0x3f, 0x7ff)
3166
e3c2f928 3167/* A VX LSP form instruction. */
0f873fd5 3168#define VX_LSP(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xffff))
e3c2f928
AF
3169
3170/* The mask for an VX LSP form instruction. */
3171#define VX_LSP_MASK VX_LSP(0x3f, 0xffff)
3172#define VX_LSP_OFF_MASK VX_LSP(0x3f, 0x7fc)
3173
74081948
AF
3174/* Additional format of VX SPE2 form instruction. */
3175#define VX_RA_CONST(op, xop, bits11_15) \
3176 (OP (op) \
0f873fd5
PB
3177 | (((uint64_t)(bits11_15) & 0x1f) << 16) \
3178 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3179#define VX_RA_CONST_MASK VX_RA_CONST(0x3f, 0x7ff, 0x1f)
3180
3181#define VX_RB_CONST(op, xop, bits16_20) \
3182 (OP (op) \
0f873fd5
PB
3183 | (((uint64_t)(bits16_20) & 0x1f) << 11) \
3184 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3185#define VX_RB_CONST_MASK VX_RB_CONST(0x3f, 0x7ff, 0x1f)
3186
3187#define VX_OFF_SPE2_MASK VX(0x3f, 0x7f8)
3188
3189#define VX_SPE_CRFD(op, xop, bits9_10) \
3190 (OP (op) \
0f873fd5
PB
3191 | (((uint64_t)(bits9_10) & 0x3) << 21) \
3192 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3193#define VX_SPE_CRFD_MASK VX_SPE_CRFD(0x3f, 0x7ff, 0x3)
3194
3195#define VX_SPE2_CLR(op, xop, bit16) \
3196 (OP (op) \
0f873fd5
PB
3197 | (((uint64_t)(bit16) & 0x1) << 15) \
3198 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3199#define VX_SPE2_CLR_MASK VX_SPE2_CLR(0x3f, 0x7ff, 0x1)
3200
3201#define VX_SPE2_SPLATB(op, xop, bits19_20) \
3202 (OP (op) \
0f873fd5
PB
3203 | (((uint64_t)(bits19_20) & 0x3) << 11) \
3204 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3205#define VX_SPE2_SPLATB_MASK VX_SPE2_SPLATB(0x3f, 0x7ff, 0x3)
3206
3207#define VX_SPE2_OCTET(op, xop, bits16_17) \
3208 (OP (op) \
0f873fd5
PB
3209 | (((uint64_t)(bits16_17) & 0x3) << 14) \
3210 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3211#define VX_SPE2_OCTET_MASK VX_SPE2_OCTET(0x3f, 0x7ff, 0x7)
3212
3213#define VX_SPE2_DDHH(op, xop, bit16) \
3214 (OP (op) \
0f873fd5
PB
3215 | (((uint64_t)(bit16) & 0x1) << 15) \
3216 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3217#define VX_SPE2_DDHH_MASK VX_SPE2_DDHH(0x3f, 0x7ff, 0x1)
3218
3219#define VX_SPE2_HH(op, xop, bit16, bits19_20) \
3220 (OP (op) \
0f873fd5
PB
3221 | (((uint64_t)(bit16) & 0x1) << 15) \
3222 | (((uint64_t)(bits19_20) & 0x3) << 11) \
3223 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3224#define VX_SPE2_HH_MASK VX_SPE2_HH(0x3f, 0x7ff, 0x1, 0x3)
3225
3226#define VX_SPE2_EVMAR(op, xop) \
3227 (OP (op) \
0f873fd5
PB
3228 | ((uint64_t)(0x1) << 11) \
3229 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3230#define VX_SPE2_EVMAR_MASK \
3231 (VX_SPE2_EVMAR(0x3f, 0x7ff) \
0f873fd5 3232 | ((uint64_t)(0x1) << 11))
74081948 3233
fb048c26
PB
3234/* A VX_MASK with the VA field fixed. */
3235#define VXVA_MASK (VX_MASK | (0x1f << 16))
3236
3237/* A VX_MASK with the VB field fixed. */
3238#define VXVB_MASK (VX_MASK | (0x1f << 11))
3239
3240/* A VX_MASK with the VA and VB fields fixed. */
3241#define VXVAVB_MASK (VX_MASK | (0x1f << 16) | (0x1f << 11))
3242
3243/* A VX_MASK with the VD and VA fields fixed. */
3244#define VXVDVA_MASK (VX_MASK | (0x1f << 21) | (0x1f << 16))
3245
3246/* A VX_MASK with a UIMM4 field. */
3247#define VXUIMM4_MASK (VX_MASK | (0x1 << 20))
3248
3249/* A VX_MASK with a UIMM3 field. */
3250#define VXUIMM3_MASK (VX_MASK | (0x3 << 19))
3251
3252/* A VX_MASK with a UIMM2 field. */
3253#define VXUIMM2_MASK (VX_MASK | (0x7 << 18))
3254
c0637f3a
PB
3255/* A VX_MASK with a PS field. */
3256#define VXPS_MASK (VX_MASK & ~(0x1 << 9))
3257
a680de9a
PB
3258/* A VX_MASK with the VA field fixed with a PS field. */
3259#define VXVAPS_MASK ((VX_MASK | (0x1f << 16)) & ~(0x1 << 9))
3260
b9c361e0 3261/* A VA form instruction. */
0f873fd5 3262#define VXA(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x03f))
786e2c0f 3263
112290ab 3264/* The mask for an VA form instruction. */
2613489e 3265#define VXA_MASK VXA(0x3f, 0x3f)
786e2c0f 3266
382c72e9
PB
3267/* A VXA_MASK with a SHB field. */
3268#define VXASHB_MASK (VXA_MASK | (1 << 10))
3269
b9c361e0 3270/* A VXR form instruction. */
b80c7270
AM
3271#define VXR(op, xop, rc) \
3272 (OP (op) \
0f873fd5
PB
3273 | (((uint64_t)(rc) & 1) << 10) \
3274 | (((uint64_t)(xop)) & 0x3ff))
786e2c0f 3275
112290ab 3276/* The mask for a VXR form instruction. */
786e2c0f
C
3277#define VXR_MASK VXR(0x3f, 0x3ff, 1)
3278
a680de9a
PB
3279/* A VX form instruction with a VA tertiary opcode. */
3280#define VXVA(op, xop, vaop) (VX(op,xop) | (((vaop) & 0x1f) << 16))
3281
0f873fd5 3282#define VXASH(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
6fd3a02d
PB
3283#define VXASH_MASK VXASH (0x3f, 0x1f)
3284
252b5132 3285/* An X form instruction. */
0f873fd5 3286#define X(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
252b5132 3287
a680de9a
PB
3288/* A X form instruction for Quad-Precision FP Instructions. */
3289#define XVA(op, xop, vaop) (X(op,xop) | (((vaop) & 0x1f) << 16))
3290
b9c361e0 3291/* An EX form instruction. */
0f873fd5 3292#define EX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
b9c361e0
JL
3293
3294/* The mask for an EX form instruction. */
3295#define EX_MASK EX (0x3f, 0x7ff)
3296
066be9f7 3297/* An XX2 form instruction. */
0f873fd5 3298#define XX2(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 2))
066be9f7 3299
a680de9a
PB
3300/* A XX2 form instruction with the VA bits specified. */
3301#define XX2VA(op, xop, vaop) (XX2(op,xop) | (((vaop) & 0x1f) << 16))
3302
9b4e5766 3303/* An XX3 form instruction. */
0f873fd5 3304#define XX3(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0xff) << 3))
9b4e5766 3305
066be9f7 3306/* An XX3 form instruction with the RC bit specified. */
b80c7270
AM
3307#define XX3RC(op, xop, rc) \
3308 (OP (op) \
0f873fd5
PB
3309 | (((uint64_t)(rc) & 1) << 10) \
3310 | ((((uint64_t)(xop)) & 0x7f) << 3))
066be9f7
PB
3311
3312/* An XX4 form instruction. */
0f873fd5 3313#define XX4(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3) << 4))
9b4e5766 3314
702f0fb4 3315/* A Z form instruction. */
0f873fd5 3316#define Z(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 1))
702f0fb4 3317
252b5132
RH
3318/* An X form instruction with the RC bit specified. */
3319#define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1))
3320
a680de9a
PB
3321/* A X form instruction for Quad-Precision FP Instructions with RC bit. */
3322#define XVARC(op, xop, vaop, rc) (XVA ((op), (xop), (vaop)) | ((rc) & 1))
3323
6fd3a02d 3324/* An X form instruction with the RA bits specified as two ops. */
b80c7270
AM
3325#define XMMF(op, xop, mop0, mop1) \
3326 (X ((op), (xop)) \
3327 | ((mop0) & 3) << 19 \
3328 | ((mop1) & 7) << 16)
6fd3a02d 3329
702f0fb4
PB
3330/* A Z form instruction with the RC bit specified. */
3331#define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1))
3332
252b5132
RH
3333/* The mask for an X form instruction. */
3334#define X_MASK XRC (0x3f, 0x3ff, 1)
3335
a680de9a
PB
3336/* The mask for an X form instruction with the BF bits specified. */
3337#define XBF_MASK (X_MASK | (3 << 21))
3338
b80c7270
AM
3339/* An X form wait instruction with everything filled in except the WC
3340 field. */
e0d602ec
BE
3341#define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
3342
9b4e5766
PB
3343/* The mask for an XX1 form instruction. */
3344#define XX1_MASK X (0x3f, 0x3ff)
3345
c0637f3a
PB
3346/* An XX1_MASK with the RB field fixed. */
3347#define XX1RB_MASK (XX1_MASK | RB_MASK)
3348
066be9f7
PB
3349/* The mask for an XX2 form instruction. */
3350#define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16))
3351
3352/* The mask for an XX2 form instruction with the UIM bits specified. */
3353#define XX2UIM_MASK (XX2 (0x3f, 0x1ff) | (7 << 18))
3354
a680de9a
PB
3355/* The mask for an XX2 form instruction with the 4 UIM bits specified. */
3356#define XX2UIM4_MASK (XX2 (0x3f, 0x1ff) | (1 << 20))
3357
066be9f7
PB
3358/* The mask for an XX2 form instruction with the BF bits specified. */
3359#define XX2BF_MASK (XX2_MASK | (3 << 21) | (1))
3360
b80c7270
AM
3361/* The mask for an XX2 form instruction with the BF and DCMX bits
3362 specified. */
a680de9a
PB
3363#define XX2BFD_MASK (XX2 (0x3f, 0x1ff) | 1)
3364
b80c7270
AM
3365/* The mask for an XX2 form instruction with a split DCMX bits
3366 specified. */
a680de9a
PB
3367#define XX2DCMXS_MASK XX2 (0x3f, 0x1ee)
3368
9b4e5766
PB
3369/* The mask for an XX3 form instruction. */
3370#define XX3_MASK XX3 (0x3f, 0xff)
3371
066be9f7
PB
3372/* The mask for an XX3 form instruction with the BF bits specified. */
3373#define XX3BF_MASK (XX3 (0x3f, 0xff) | (3 << 21) | (1))
3374
b80c7270
AM
3375/* The mask for an XX3 form instruction with the DM or SHW bits
3376 specified. */
9b4e5766 3377#define XX3DM_MASK (XX3 (0x3f, 0x1f) | (1 << 10))
066be9f7
PB
3378#define XX3SHW_MASK XX3DM_MASK
3379
3380/* The mask for an XX4 form instruction. */
3381#define XX4_MASK XX4 (0x3f, 0x3)
3382
b80c7270
AM
3383/* An X form wait instruction with everything filled in except the WC
3384 field. */
066be9f7 3385#define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
9b4e5766 3386
6fd3a02d
PB
3387/* The mask for an XMMF form instruction. */
3388#define XMMF_MASK (XMMF (0x3f, 0x3ff, 3, 7) | (1))
3389
702f0fb4
PB
3390/* The mask for a Z form instruction. */
3391#define Z_MASK ZRC (0x3f, 0x1ff, 1)
0bbdef92 3392#define Z2_MASK ZRC (0x3f, 0xff, 1)
702f0fb4 3393
a680de9a 3394/* An X_MASK with the RA/VA field fixed. */
252b5132 3395#define XRA_MASK (X_MASK | RA_MASK)
a680de9a 3396#define XVA_MASK XRA_MASK
252b5132 3397
a680de9a 3398/* An XRA_MASK with the A_L/W field clear. */
0f873fd5 3399#define XWRA_MASK (XRA_MASK & ~((uint64_t) 1 << 16))
a680de9a 3400#define XRLA_MASK XWRA_MASK
ea192fa3 3401
252b5132
RH
3402/* An X_MASK with the RB field fixed. */
3403#define XRB_MASK (X_MASK | RB_MASK)
3404
3405/* An X_MASK with the RT field fixed. */
3406#define XRT_MASK (X_MASK | RT_MASK)
3407
702f0fb4 3408/* An XRT_MASK mask with the L bits clear. */
0f873fd5 3409#define XLRT_MASK (XRT_MASK & ~((uint64_t) 0x3 << 21))
702f0fb4 3410
252b5132
RH
3411/* An X_MASK with the RA and RB fields fixed. */
3412#define XRARB_MASK (X_MASK | RA_MASK | RB_MASK)
3413
a680de9a
PB
3414/* An XBF_MASK with the RA and RB fields fixed. */
3415#define XBFRARB_MASK (XBF_MASK | RA_MASK | RB_MASK)
3416
112290ab 3417/* An XRARB_MASK, but with the L bit clear. */
0f873fd5 3418#define XRLARB_MASK (XRARB_MASK & ~((uint64_t) 1 << 16))
5ae2e65e 3419
a680de9a 3420/* An XRARB_MASK, but with the L bits in a darn instruction clear. */
0f873fd5 3421#define XLRAND_MASK (XRARB_MASK & ~((uint64_t) 3 << 16))
a680de9a 3422
252b5132
RH
3423/* An X_MASK with the RT and RA fields fixed. */
3424#define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK)
3425
5817ffd1
PB
3426/* An X_MASK with the RT and RB fields fixed. */
3427#define XRTRB_MASK (X_MASK | RT_MASK | RB_MASK)
3428
98acc1c5 3429/* An XRTRA_MASK, but with L bit clear. */
0f873fd5 3430#define XRTLRA_MASK (XRTRA_MASK & ~((uint64_t) 1 << 21))
98acc1c5 3431
5817ffd1
PB
3432/* An X_MASK with the RT, RA and RB fields fixed. */
3433#define XRTRARB_MASK (X_MASK | RT_MASK | RA_MASK | RB_MASK)
3434
3435/* An XRTRARB_MASK, but with L bit clear. */
0f873fd5 3436#define XRTLRARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 21))
5817ffd1
PB
3437
3438/* An XRTRARB_MASK, but with A bit clear. */
0f873fd5 3439#define XRTARARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 25))
5817ffd1
PB
3440
3441/* An XRTRARB_MASK, but with BF bits clear. */
0f873fd5 3442#define XRTBFRARB_MASK (XRTRARB_MASK & ~((uint64_t) 7 << 23))
5817ffd1 3443
f3806e43 3444/* An X form instruction with the L bit specified. */
b80c7270
AM
3445#define XOPL(op, xop, l) \
3446 (X ((op), (xop)) \
0f873fd5 3447 | ((((uint64_t)(l)) & 1) << 21))
252b5132 3448
e0d602ec 3449/* An X form instruction with the L bits specified. */
b80c7270
AM
3450#define XOPL2(op, xop, l) \
3451 (X ((op), (xop)) \
0f873fd5 3452 | ((((uint64_t)(l)) & 3) << 21))
e0d602ec 3453
5817ffd1 3454/* An X form instruction with the L bit and RC bit specified. */
b80c7270
AM
3455#define XRCL(op, xop, l, rc) \
3456 (XRC ((op), (xop), (rc)) \
0f873fd5 3457 | ((((uint64_t)(l)) & 1) << 21))
5817ffd1 3458
19a6653c 3459/* An X form instruction with RT fields specified */
b80c7270
AM
3460#define XRT(op, xop, rt) \
3461 (X ((op), (xop)) \
0f873fd5 3462 | ((((uint64_t)(rt)) & 0x1f) << 21))
19a6653c
AM
3463
3464/* An X form instruction with RT and RA fields specified */
b80c7270
AM
3465#define XRTRA(op, xop, rt, ra) \
3466 (X ((op), (xop)) \
0f873fd5
PB
3467 | ((((uint64_t)(rt)) & 0x1f) << 21) \
3468 | ((((uint64_t)(ra)) & 0x1f) << 16))
19a6653c 3469
252b5132 3470/* The mask for an X form comparison instruction. */
0f873fd5 3471#define XCMP_MASK (X_MASK | (((uint64_t)1) << 22))
252b5132 3472
520ceea4
BE
3473/* The mask for an X form comparison instruction with the L field
3474 fixed. */
0f873fd5 3475#define XCMPL_MASK (XCMP_MASK | (((uint64_t)1) << 21))
252b5132
RH
3476
3477/* An X form trap instruction with the TO field specified. */
b80c7270
AM
3478#define XTO(op, xop, to) \
3479 (X ((op), (xop)) \
0f873fd5 3480 | ((((uint64_t)(to)) & 0x1f) << 21))
252b5132
RH
3481#define XTO_MASK (X_MASK | TO_MASK)
3482
e0c21649 3483/* An X form tlb instruction with the SH field specified. */
b80c7270
AM
3484#define XTLB(op, xop, sh) \
3485 (X ((op), (xop)) \
0f873fd5 3486 | ((((uint64_t)(sh)) & 0x1f) << 11))
e0c21649
GK
3487#define XTLB_MASK (X_MASK | SH_MASK)
3488
6ba045b1 3489/* An X form sync instruction. */
b80c7270
AM
3490#define XSYNC(op, xop, l) \
3491 (X ((op), (xop)) \
0f873fd5 3492 | ((((uint64_t)(l)) & 3) << 21))
6ba045b1 3493
b80c7270
AM
3494/* An X form sync instruction with everything filled in except the LS
3495 field. */
6ba045b1
AM
3496#define XSYNC_MASK (0xff9fffff)
3497
b80c7270
AM
3498/* An X form sync instruction with everything filled in except the L
3499 and E fields. */
aea77599
AM
3500#define XSYNCLE_MASK (0xff90ffff)
3501
702f0fb4 3502/* An X_MASK, but with the EH bit clear. */
0f873fd5 3503#define XEH_MASK (X_MASK & ~((uint64_t )1))
702f0fb4 3504
f5c120c5 3505/* An X form AltiVec dss instruction. */
0f873fd5 3506#define XDSS(op, xop, a) (X ((op), (xop)) | ((((uint64_t)(a)) & 1) << 25))
f5c120c5
MG
3507#define XDSS_MASK XDSS(0x3f, 0x3ff, 1)
3508
252b5132 3509/* An XFL form instruction. */
b80c7270
AM
3510#define XFL(op, xop, rc) \
3511 (OP (op) \
0f873fd5
PB
3512 | ((((uint64_t)(xop)) & 0x3ff) << 1) \
3513 | (((uint64_t)(rc)) & 1))
ea192fa3 3514#define XFL_MASK XFL (0x3f, 0x3ff, 1)
252b5132 3515
23976049 3516/* An X form isel instruction. */
0f873fd5 3517#define XISEL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
de866fcc 3518#define XISEL_MASK XISEL(0x3f, 0x1f)
23976049 3519
252b5132 3520/* An XL form instruction with the LK field set to 0. */
0f873fd5 3521#define XL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
252b5132
RH
3522
3523/* An XL form instruction which uses the LK field. */
3524#define XLLK(op, xop, lk) (XL ((op), (xop)) | ((lk) & 1))
3525
3526/* The mask for an XL form instruction. */
3527#define XL_MASK XLLK (0x3f, 0x3ff, 1)
3528
c0637f3a
PB
3529/* An XL_MASK with the RT, RA and RB fields fixed, but S bit clear. */
3530#define XLS_MASK ((XL_MASK | RT_MASK | RA_MASK | RB_MASK) & ~(1 << 11))
3531
252b5132
RH
3532/* An XL form instruction which explicitly sets the BO field. */
3533#define XLO(op, bo, xop, lk) \
0f873fd5 3534 (XLLK ((op), (xop), (lk)) | ((((uint64_t)(bo)) & 0x1f) << 21))
252b5132
RH
3535#define XLO_MASK (XL_MASK | BO_MASK)
3536
252b5132
RH
3537/* An XL form instruction which sets the BO field and the condition
3538 bits of the BI field. */
3539#define XLOCB(op, bo, cb, xop, lk) \
0f873fd5 3540 (XLO ((op), (bo), (xop), (lk)) | ((((uint64_t)(cb)) & 3) << 16))
252b5132
RH
3541#define XLOCB_MASK XLOCB (0x3f, 0x1f, 0x3, 0x3ff, 1)
3542
aae9718e 3543/* An XL_MASK or XLOCB_MASK with the BB field fixed. */
252b5132 3544#define XLBB_MASK (XL_MASK | BB_MASK)
252b5132
RH
3545#define XLBOCBBB_MASK (XLOCB_MASK | BB_MASK)
3546
d0618d1c 3547/* A mask for branch instructions using the BH field. */
66e85460 3548#define XLBH_MASK (XL_MASK | (BB_MASK & ~(3 << 11)))
d0618d1c 3549
252b5132
RH
3550/* An XL_MASK with the BO and BB fields fixed. */
3551#define XLBOBB_MASK (XL_MASK | BO_MASK | BB_MASK)
3552
3553/* An XL_MASK with the BO, BI and BB fields fixed. */
3554#define XLBOBIBB_MASK (XL_MASK | BO_MASK | BI_MASK | BB_MASK)
3555
e01d869a 3556/* An X form mbar instruction with MO field. */
b80c7270
AM
3557#define XMBAR(op, xop, mo) \
3558 (X ((op), (xop)) \
0f873fd5 3559 | ((((uint64_t)(mo)) & 1) << 21))
e01d869a 3560
252b5132 3561/* An XO form instruction. */
b80c7270
AM
3562#define XO(op, xop, oe, rc) \
3563 (OP (op) \
0f873fd5
PB
3564 | ((((uint64_t)(xop)) & 0x1ff) << 1) \
3565 | ((((uint64_t)(oe)) & 1) << 10) \
b80c7270 3566 | (((unsigned long)(rc)) & 1))
252b5132
RH
3567#define XO_MASK XO (0x3f, 0x1ff, 1, 1)
3568
3569/* An XO_MASK with the RB field fixed. */
3570#define XORB_MASK (XO_MASK | RB_MASK)
3571
c3d65c1c 3572/* An XOPS form instruction for paired singles. */
b80c7270
AM
3573#define XOPS(op, xop, rc) \
3574 (OP (op) \
0f873fd5
PB
3575 | ((((uint64_t)(xop)) & 0x3ff) << 1) \
3576 | (((uint64_t)(rc)) & 1))
c3d65c1c
BE
3577#define XOPS_MASK XOPS (0x3f, 0x3ff, 1)
3578
3579
252b5132 3580/* An XS form instruction. */
b80c7270
AM
3581#define XS(op, xop, rc) \
3582 (OP (op) \
0f873fd5
PB
3583 | ((((uint64_t)(xop)) & 0x1ff) << 2) \
3584 | (((uint64_t)(rc)) & 1))
252b5132
RH
3585#define XS_MASK XS (0x3f, 0x1ff, 1)
3586
3587/* A mask for the FXM version of an XFX form instruction. */
98e69875 3588#define XFXFXM_MASK (X_MASK | (1 << 11) | (1 << 20))
252b5132
RH
3589
3590/* An XFX form instruction with the FXM field filled in. */
b80c7270
AM
3591#define XFXM(op, xop, fxm, p4) \
3592 (X ((op), (xop)) \
0f873fd5
PB
3593 | ((((uint64_t)(fxm)) & 0xff) << 12) \
3594 | ((uint64_t)(p4) << 20))
252b5132
RH
3595
3596/* An XFX form instruction with the SPR field filled in. */
b80c7270
AM
3597#define XSPR(op, xop, spr) \
3598 (X ((op), (xop)) \
0f873fd5
PB
3599 | ((((uint64_t)(spr)) & 0x1f) << 16) \
3600 | ((((uint64_t)(spr)) & 0x3e0) << 6))
252b5132
RH
3601#define XSPR_MASK (X_MASK | SPR_MASK)
3602
3603/* An XFX form instruction with the SPR field filled in except for the
3604 SPRBAT field. */
3605#define XSPRBAT_MASK (XSPR_MASK &~ SPRBAT_MASK)
3606
fa758a70
AC
3607/* An XFX form instruction with the SPR field filled in except for the
3608 SPRGQR field. */
3609#define XSPRGQR_MASK (XSPR_MASK &~ SPRGQR_MASK)
3610
252b5132
RH
3611/* An XFX form instruction with the SPR field filled in except for the
3612 SPRG field. */
b84bf58a 3613#define XSPRG_MASK (XSPR_MASK & ~(0x1f << 16))
252b5132
RH
3614
3615/* An X form instruction with everything filled in except the E field. */
3616#define XE_MASK (0xffff7fff)
3617
23976049 3618/* An X form user context instruction. */
0f873fd5 3619#define XUC(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f))
23976049
EZ
3620#define XUC_MASK XUC(0x3f, 0x1f)
3621
c3d65c1c 3622/* An XW form instruction. */
b80c7270
AM
3623#define XW(op, xop, rc) \
3624 (OP (op) \
0f873fd5 3625 | ((((uint64_t)(xop)) & 0x3f) << 1) \
b80c7270 3626 | ((rc) & 1))
c3d65c1c
BE
3627/* The mask for a G form instruction. rc not supported at present. */
3628#define XW_MASK XW (0x3f, 0x3f, 0)
3629
081ba1b3 3630/* An APU form instruction. */
b80c7270
AM
3631#define APU(op, xop, rc) \
3632 (OP (op) \
0f873fd5 3633 | (((uint64_t)(xop)) & 0x3ff) << 1 \
b80c7270 3634 | ((rc) & 1))
081ba1b3
AM
3635
3636/* The mask for an APU form instruction. */
3637#define APU_MASK APU (0x3f, 0x3ff, 1)
3638#define APU_RT_MASK (APU_MASK | RT_MASK)
3639#define APU_RA_MASK (APU_MASK | RA_MASK)
3640
252b5132
RH
3641/* The BO encodings used in extended conditional branch mnemonics. */
3642#define BODNZF (0x0)
3643#define BODNZFP (0x1)
3644#define BODZF (0x2)
3645#define BODZFP (0x3)
252b5132
RH
3646#define BODNZT (0x8)
3647#define BODNZTP (0x9)
3648#define BODZT (0xa)
3649#define BODZTP (0xb)
802a735e
AM
3650
3651#define BOF (0x4)
3652#define BOFP (0x5)
94efba12
AM
3653#define BOFM4 (0x6)
3654#define BOFP4 (0x7)
252b5132
RH
3655#define BOT (0xc)
3656#define BOTP (0xd)
94efba12
AM
3657#define BOTM4 (0xe)
3658#define BOTP4 (0xf)
802a735e 3659
252b5132
RH
3660#define BODNZ (0x10)
3661#define BODNZP (0x11)
3662#define BODZ (0x12)
3663#define BODZP (0x13)
94efba12
AM
3664#define BODNZM4 (0x18)
3665#define BODNZP4 (0x19)
3666#define BODZM4 (0x1a)
3667#define BODZP4 (0x1b)
802a735e 3668
252b5132
RH
3669#define BOU (0x14)
3670
b9c361e0
JL
3671/* The BO16 encodings used in extended VLE conditional branch mnemonics. */
3672#define BO16F (0x0)
3673#define BO16T (0x1)
3674
3675/* The BO32 encodings used in extended VLE conditional branch mnemonics. */
3676#define BO32F (0x0)
3677#define BO32T (0x1)
3678#define BO32DNZ (0x2)
3679#define BO32DZ (0x3)
3680
252b5132
RH
3681/* The BI condition bit encodings used in extended conditional branch
3682 mnemonics. */
3683#define CBLT (0)
3684#define CBGT (1)
3685#define CBEQ (2)
3686#define CBSO (3)
3687
3688/* The TO encodings used in extended trap mnemonics. */
3689#define TOLGT (0x1)
3690#define TOLLT (0x2)
3691#define TOEQ (0x4)
3692#define TOLGE (0x5)
3693#define TOLNL (0x5)
3694#define TOLLE (0x6)
3695#define TOLNG (0x6)
3696#define TOGT (0x8)
3697#define TOGE (0xc)
3698#define TONL (0xc)
3699#define TOLT (0x10)
3700#define TOLE (0x14)
3701#define TONG (0x14)
3702#define TONE (0x18)
3703#define TOU (0x1f)
3704\f
3705/* Smaller names for the flags so each entry in the opcodes table will
3706 fit on a single line. */
3707#undef PPC
de866fcc 3708#define PPC PPC_OPCODE_PPC
661bd698 3709#define PPCCOM PPC_OPCODE_PPC | PPC_OPCODE_COMMON
661bd698 3710#define POWER4 PPC_OPCODE_POWER4
1ed8e1e4 3711#define POWER5 PPC_OPCODE_POWER5
702f0fb4 3712#define POWER6 PPC_OPCODE_POWER6
066be9f7 3713#define POWER7 PPC_OPCODE_POWER7
5817ffd1 3714#define POWER8 PPC_OPCODE_POWER8
a680de9a 3715#define POWER9 PPC_OPCODE_POWER9
dd7efa79 3716#define POWERXX PPC_OPCODE_POWERXX
ede602d7 3717#define CELL PPC_OPCODE_CELL
bdc70b4a 3718#define PPC64 PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE
6b069ee7 3719#define NON32 (PPC_OPCODE_64 | PPC_OPCODE_POWER4 \
bdc70b4a 3720 | PPC_OPCODE_EFS | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
418c1742 3721#define PPC403 PPC_OPCODE_403
081ba1b3 3722#define PPC405 PPC_OPCODE_405
7d5b217e 3723#define PPC440 PPC_OPCODE_440
c8187e15 3724#define PPC464 PPC440
9fe54b1c 3725#define PPC476 PPC_OPCODE_476
ef5a96d5 3726#define PPC750 PPC_OPCODE_750
fa758a70
AC
3727#define GEKKO PPC_OPCODE_750
3728#define BROADWAY PPC_OPCODE_750
ef5a96d5
AM
3729#define PPC7450 PPC_OPCODE_7450
3730#define PPC860 PPC_OPCODE_860
c3d65c1c 3731#define PPCPS PPC_OPCODE_PPCPS
a404d431 3732#define PPCVEC PPC_OPCODE_ALTIVEC
9a85b496
AM
3733#define PPCVEC2 (PPC_OPCODE_POWER8 | PPC_OPCODE_E6500)
3734#define PPCVEC3 PPC_OPCODE_POWER9
9b4e5766 3735#define PPCVSX PPC_OPCODE_VSX
9570835e
AM
3736#define PPCVSX2 PPC_OPCODE_POWER8
3737#define PPCVSX3 PPC_OPCODE_POWER9
de866fcc
AM
3738#define POWER PPC_OPCODE_POWER
3739#define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2
81a0b7e2 3740#define PWR2COM PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON
b80c7270
AM
3741#define PPCPWR2 (PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 \
3742 | PPC_OPCODE_COMMON)
de866fcc 3743#define COM PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON
de866fcc 3744#define M601 PPC_OPCODE_POWER | PPC_OPCODE_601
661bd698 3745#define PWRCOM PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON
de866fcc 3746#define MFDEC1 PPC_OPCODE_POWER
b80c7270
AM
3747#define MFDEC2 (PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE \
3748 | PPC_OPCODE_TITAN)
418c1742 3749#define BOOKE PPC_OPCODE_BOOKE
14b57c7c 3750#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
36ae0db3 3751#define PPCE300 PPC_OPCODE_E300
14b57c7c 3752#define PPCSPE PPC_OPCODE_SPE
74081948 3753#define PPCSPE2 PPC_OPCODE_SPE2
14b57c7c
AM
3754#define PPCISEL PPC_OPCODE_ISEL
3755#define PPCEFS PPC_OPCODE_EFS
74081948 3756#define PPCEFS2 PPC_OPCODE_EFS2
de866fcc 3757#define PPCBRLK PPC_OPCODE_BRLOCK
23976049 3758#define PPCPMR PPC_OPCODE_PMR
aea77599 3759#define PPCTMR PPC_OPCODE_TMR
de866fcc 3760#define PPCCHLK PPC_OPCODE_CACHELCK
fa758a70 3761#define PPCRFMCI PPC_OPCODE_RFMCI
19a6653c 3762#define E500MC PPC_OPCODE_E500MC
634b50f2 3763#define PPCA2 PPC_OPCODE_A2
43e65147 3764#define TITAN PPC_OPCODE_TITAN
62adc510 3765#define MULHW PPC_OPCODE_405 | PPC_OPCODE_440 | PPC_OPCODE_476 | TITAN
e01d869a 3766#define E500 PPC_OPCODE_E500
aea77599 3767#define E6500 PPC_OPCODE_E6500
b9c361e0 3768#define PPCVLE PPC_OPCODE_VLE
ef85eab0 3769#define PPCHTM PPC_OPCODE_POWER8
dfdaec14 3770#define E200Z4 PPC_OPCODE_E200Z4
e3c2f928 3771#define PPCLSP PPC_OPCODE_LSP
4fff86c5
PB
3772/* The list of embedded processors that use the embedded operand ordering
3773 for the 3 operand dcbt and dcbtst instructions. */
3774#define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
14b57c7c 3775 | PPC_OPCODE_A2)
4fff86c5
PB
3776
3777
252b5132
RH
3778\f
3779/* The opcode table.
3780
3781 The format of the opcode table is:
3782
8ebac3aa 3783 NAME OPCODE MASK FLAGS ANTI {OPERANDS}
252b5132
RH
3784
3785 NAME is the name of the instruction.
3786 OPCODE is the instruction opcode.
3787 MASK is the opcode mask; this is used to tell the disassembler
3788 which bits in the actual opcode must match OPCODE.
8ebac3aa
AM
3789 FLAGS are flags indicating which processors support the instruction.
3790 ANTI indicates which processors don't support the instruction.
252b5132
RH
3791 OPERANDS is the list of operands.
3792
3793 The disassembler reads the table in order and prints the first
3794 instruction which matches, so this table is sorted to put more
de866fcc
AM
3795 specific instructions before more general instructions.
3796
3797 This table must be sorted by major opcode. Please try to keep it
3798 vaguely sorted within major opcode too, except of course where
3799 constrained otherwise by disassembler operation. */
252b5132
RH
3800
3801const struct powerpc_opcode powerpc_opcodes[] = {
14b57c7c
AM
3802{"attn", X(0,256), X_MASK, POWER4|PPCA2, PPC476|PPCVLE, {0}},
3803{"tdlgti", OPTO(2,TOLGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3804{"tdllti", OPTO(2,TOLLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3805{"tdeqi", OPTO(2,TOEQ), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3806{"tdlgei", OPTO(2,TOLGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3807{"tdlnli", OPTO(2,TOLNL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3808{"tdllei", OPTO(2,TOLLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3809{"tdlngi", OPTO(2,TOLNG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3810{"tdgti", OPTO(2,TOGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3811{"tdgei", OPTO(2,TOGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3812{"tdnli", OPTO(2,TONL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3813{"tdlti", OPTO(2,TOLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3814{"tdlei", OPTO(2,TOLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3815{"tdngi", OPTO(2,TONG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3816{"tdnei", OPTO(2,TONE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3817{"tdui", OPTO(2,TOU), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3818{"tdi", OP(2), OP_MASK, PPC64, PPCVLE, {TO, RA, SI}},
3819
3820{"twlgti", OPTO(3,TOLGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3821{"tlgti", OPTO(3,TOLGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3822{"twllti", OPTO(3,TOLLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3823{"tllti", OPTO(3,TOLLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3824{"tweqi", OPTO(3,TOEQ), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3825{"teqi", OPTO(3,TOEQ), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3826{"twlgei", OPTO(3,TOLGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3827{"tlgei", OPTO(3,TOLGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3828{"twlnli", OPTO(3,TOLNL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3829{"tlnli", OPTO(3,TOLNL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3830{"twllei", OPTO(3,TOLLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3831{"tllei", OPTO(3,TOLLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3832{"twlngi", OPTO(3,TOLNG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3833{"tlngi", OPTO(3,TOLNG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3834{"twgti", OPTO(3,TOGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3835{"tgti", OPTO(3,TOGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3836{"twgei", OPTO(3,TOGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3837{"tgei", OPTO(3,TOGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3838{"twnli", OPTO(3,TONL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3839{"tnli", OPTO(3,TONL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3840{"twlti", OPTO(3,TOLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3841{"tlti", OPTO(3,TOLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3842{"twlei", OPTO(3,TOLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3843{"tlei", OPTO(3,TOLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3844{"twngi", OPTO(3,TONG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3845{"tngi", OPTO(3,TONG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3846{"twnei", OPTO(3,TONE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3847{"tnei", OPTO(3,TONE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3848{"twui", OPTO(3,TOU), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3849{"tui", OPTO(3,TOU), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3850{"twi", OP(3), OP_MASK, PPCCOM, PPCVLE, {TO, RA, SI}},
3851{"ti", OP(3), OP_MASK, PWRCOM, PPCVLE, {TO, RA, SI}},
3852
3853{"ps_cmpu0", X (4, 0), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
3854{"vaddubm", VX (4, 0), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3855{"vmul10cuq", VX (4, 1), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
3856{"vmaxub", VX (4, 2), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3857{"vrlb", VX (4, 4), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3858{"vcmpequb", VXR(4, 6,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3859{"vcmpneb", VXR(4, 7,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3860{"vmuloub", VX (4, 8), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3861{"vaddfp", VX (4, 10), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3862{"psq_lx", XW (4, 6,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
3863{"vmrghb", VX (4, 12), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3864{"psq_stx", XW (4, 7,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
3865{"vpkuhum", VX (4, 14), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3866{"mulhhwu", XRC(4, 8,0), X_MASK, MULHW, 0, {RT, RA, RB}},
3867{"mulhhwu.", XRC(4, 8,1), X_MASK, MULHW, 0, {RT, RA, RB}},
3868{"ps_sum0", A (4, 10,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3869{"ps_sum0.", A (4, 10,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3870{"ps_sum1", A (4, 11,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3871{"ps_sum1.", A (4, 11,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3872{"ps_muls0", A (4, 12,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3873{"machhwu", XO (4, 12,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3874{"ps_muls0.", A (4, 12,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3875{"machhwu.", XO (4, 12,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3876{"ps_muls1", A (4, 13,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3877{"ps_muls1.", A (4, 13,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3878{"ps_madds0", A (4, 14,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3879{"ps_madds0.", A (4, 14,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3880{"ps_madds1", A (4, 15,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3881{"ps_madds1.", A (4, 15,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3882{"vmhaddshs", VXA(4, 32), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3883{"vmhraddshs", VXA(4, 33), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3884{"vmladduhm", VXA(4, 34), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3885{"vmsumudm", VXA(4, 35), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
3886{"ps_div", A (4, 18,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3887{"vmsumubm", VXA(4, 36), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3888{"ps_div.", A (4, 18,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3889{"vmsummbm", VXA(4, 37), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3890{"vmsumuhm", VXA(4, 38), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3891{"vmsumuhs", VXA(4, 39), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3892{"ps_sub", A (4, 20,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3893{"vmsumshm", VXA(4, 40), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3894{"ps_sub.", A (4, 20,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3895{"vmsumshs", VXA(4, 41), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3896{"ps_add", A (4, 21,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3897{"vsel", VXA(4, 42), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3898{"ps_add.", A (4, 21,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3899{"vperm", VXA(4, 43), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3900{"vsldoi", VXA(4, 44), VXASHB_MASK, PPCVEC, 0, {VD, VA, VB, SHB}},
3901{"vpermxor", VXA(4, 45), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
3902{"ps_sel", A (4, 23,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3903{"vmaddfp", VXA(4, 46), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
3904{"ps_sel.", A (4, 23,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3905{"vnmsubfp", VXA(4, 47), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
3906{"ps_res", A (4, 24,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
3907{"maddhd", VXA(4, 48), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
3908{"ps_res.", A (4, 24,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
3909{"maddhdu", VXA(4, 49), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
3910{"ps_mul", A (4, 25,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3911{"ps_mul.", A (4, 25,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3912{"maddld", VXA(4, 51), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
3913{"ps_rsqrte", A (4, 26,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
3914{"ps_rsqrte.", A (4, 26,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
3915{"ps_msub", A (4, 28,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3916{"ps_msub.", A (4, 28,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3917{"ps_madd", A (4, 29,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3918{"ps_madd.", A (4, 29,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3919{"vpermr", VXA(4, 59), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
3920{"ps_nmsub", A (4, 30,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3921{"vaddeuqm", VXA(4, 60), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
3922{"ps_nmsub.", A (4, 30,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3923{"vaddecuq", VXA(4, 61), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
3924{"ps_nmadd", A (4, 31,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3925{"vsubeuqm", VXA(4, 62), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
3926{"ps_nmadd.", A (4, 31,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3927{"vsubecuq", VXA(4, 63), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
3928{"ps_cmpo0", X (4, 32), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
3929{"vadduhm", VX (4, 64), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3930{"vmul10ecuq", VX (4, 65), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
3931{"vmaxuh", VX (4, 66), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3932{"vrlh", VX (4, 68), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3933{"vcmpequh", VXR(4, 70,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3934{"vcmpneh", VXR(4, 71,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3935{"vmulouh", VX (4, 72), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3936{"vsubfp", VX (4, 74), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3937{"psq_lux", XW (4, 38,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
3938{"vmrghh", VX (4, 76), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3939{"psq_stux", XW (4, 39,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
3940{"vpkuwum", VX (4, 78), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3941{"ps_neg", XRC(4, 40,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3942{"mulhhw", XRC(4, 40,0), X_MASK, MULHW, 0, {RT, RA, RB}},
3943{"ps_neg.", XRC(4, 40,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3944{"mulhhw.", XRC(4, 40,1), X_MASK, MULHW, 0, {RT, RA, RB}},
3945{"machhw", XO (4, 44,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3946{"machhw.", XO (4, 44,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3947{"nmachhw", XO (4, 46,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3948{"nmachhw.", XO (4, 46,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3949{"ps_cmpu1", X (4, 64), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
3950{"vadduwm", VX (4, 128), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3951{"vmaxuw", VX (4, 130), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3952{"vrlw", VX (4, 132), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3953{"vrlwmi", VX (4, 133), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
3954{"vcmpequw", VXR(4, 134,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3955{"vcmpnew", VXR(4, 135,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3956{"vmulouw", VX (4, 136), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3957{"vmuluwm", VX (4, 137), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3958{"vmrghw", VX (4, 140), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3959{"vpkuhus", VX (4, 142), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3960{"ps_mr", XRC(4, 72,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3961{"ps_mr.", XRC(4, 72,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3962{"machhwsu", XO (4, 76,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3963{"machhwsu.", XO (4, 76,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3964{"ps_cmpo1", X (4, 96), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
3965{"vaddudm", VX (4, 192), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3966{"vmaxud", VX (4, 194), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3967{"vrld", VX (4, 196), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3968{"vrldmi", VX (4, 197), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
3969{"vcmpeqfp", VXR(4, 198,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3970{"vcmpequd", VXR(4, 199,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
3971{"vpkuwus", VX (4, 206), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3972{"machhws", XO (4, 108,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3973{"machhws.", XO (4, 108,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3974{"nmachhws", XO (4, 110,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3975{"nmachhws.", XO (4, 110,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3976{"vadduqm", VX (4, 256), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3977{"vmaxsb", VX (4, 258), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3978{"vslb", VX (4, 260), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3979{"vcmpnezb", VXR(4, 263,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3980{"vmulosb", VX (4, 264), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3981{"vrefp", VX (4, 266), VXVA_MASK, PPCVEC, 0, {VD, VB}},
3982{"vmrglb", VX (4, 268), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3983{"vpkshus", VX (4, 270), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3984{"ps_nabs", XRC(4, 136,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3985{"mulchwu", XRC(4, 136,0), X_MASK, MULHW, 0, {RT, RA, RB}},
3986{"ps_nabs.", XRC(4, 136,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3987{"mulchwu.", XRC(4, 136,1), X_MASK, MULHW, 0, {RT, RA, RB}},
3988{"macchwu", XO (4, 140,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3989{"macchwu.", XO (4, 140,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3990{"vaddcuq", VX (4, 320), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3991{"vmaxsh", VX (4, 322), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3992{"vslh", VX (4, 324), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3993{"vcmpnezh", VXR(4, 327,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3994{"vmulosh", VX (4, 328), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3995{"vrsqrtefp", VX (4, 330), VXVA_MASK, PPCVEC, 0, {VD, VB}},
3996{"vmrglh", VX (4, 332), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3997{"vpkswus", VX (4, 334), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3998{"mulchw", XRC(4, 168,0), X_MASK, MULHW, 0, {RT, RA, RB}},
3999{"mulchw.", XRC(4, 168,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4000{"macchw", XO (4, 172,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4001{"macchw.", XO (4, 172,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4002{"nmacchw", XO (4, 174,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4003{"nmacchw.", XO (4, 174,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4004{"vaddcuw", VX (4, 384), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4005{"vmaxsw", VX (4, 386), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4006{"vslw", VX (4, 388), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4007{"vrlwnm", VX (4, 389), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4008{"vcmpnezw", VXR(4, 391,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4009{"vmulosw", VX (4, 392), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4010{"vexptefp", VX (4, 394), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4011{"vmrglw", VX (4, 396), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4012{"vpkshss", VX (4, 398), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4013{"macchwsu", XO (4, 204,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4014{"macchwsu.", XO (4, 204,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4015{"vmaxsd", VX (4, 450), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4016{"vsl", VX (4, 452), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4017{"vrldnm", VX (4, 453), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4018{"vcmpgefp", VXR(4, 454,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4019{"vlogefp", VX (4, 458), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4020{"vpkswss", VX (4, 462), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4021{"macchws", XO (4, 236,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4022{"macchws.", XO (4, 236,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4023{"nmacchws", XO (4, 238,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4024{"nmacchws.", XO (4, 238,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4025{"evaddw", VX (4, 512), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4026{"vaddubs", VX (4, 512), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4027{"vmul10uq", VX (4, 513), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
4028{"evaddiw", VX (4, 514), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}},
4029{"vminub", VX (4, 514), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4030{"evsubfw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4031{"evsubw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RB, RA}},
4032{"vsrb", VX (4, 516), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4033{"evsubifw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, UIMM, RB}},
4034{"evsubiw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}},
4035{"vcmpgtub", VXR(4, 518,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4036{"evabs", VX (4, 520), VX_MASK, PPCSPE, 0, {RS, RA}},
4037{"vmuleub", VX (4, 520), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4038{"evneg", VX (4, 521), VX_MASK, PPCSPE, 0, {RS, RA}},
4039{"evextsb", VX (4, 522), VX_MASK, PPCSPE, 0, {RS, RA}},
4040{"vrfin", VX (4, 522), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4041{"evextsh", VX (4, 523), VX_MASK, PPCSPE, 0, {RS, RA}},
4042{"evrndw", VX (4, 524), VX_MASK, PPCSPE, 0, {RS, RA}},
4043{"vspltb", VX (4, 524), VXUIMM4_MASK, PPCVEC, 0, {VD, VB, UIMM4}},
4044{"vextractub", VX (4, 525), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4045{"evcntlzw", VX (4, 525), VX_MASK, PPCSPE, 0, {RS, RA}},
4046{"evcntlsw", VX (4, 526), VX_MASK, PPCSPE, 0, {RS, RA}},
4047{"vupkhsb", VX (4, 526), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4048{"brinc", VX (4, 527), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4049{"ps_abs", XRC(4, 264,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4050{"ps_abs.", XRC(4, 264,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4051{"evand", VX (4, 529), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4052{"evandc", VX (4, 530), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4053{"evxor", VX (4, 534), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
98553ad3 4054{"evmr", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RAB}},
14b57c7c 4055{"evor", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
98553ad3 4056{"evnot", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RAB}},
14b57c7c 4057{"evnor", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
4058{"get", APU(4, 268,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4059{"eveqv", VX (4, 537), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4060{"evorc", VX (4, 539), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4061{"evnand", VX (4, 542), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4062{"evsrwu", VX (4, 544), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4063{"evsrws", VX (4, 545), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4064{"evsrwiu", VX (4, 546), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4065{"evsrwis", VX (4, 547), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4066{"evslw", VX (4, 548), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4067{"evslwi", VX (4, 550), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4068{"evrlw", VX (4, 552), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4069{"evsplati", VX (4, 553), VX_MASK, PPCSPE, 0, {RS, SIMM}},
4070{"evrlwi", VX (4, 554), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4071{"evsplatfi", VX (4, 555), VX_MASK, PPCSPE, 0, {RS, SIMM}},
4072{"evmergehi", VX (4, 556), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4073{"evmergelo", VX (4, 557), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4074{"evmergehilo", VX (4, 558), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4075{"evmergelohi", VX (4, 559), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4076{"evcmpgtu", VX (4, 560), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4077{"evcmpgts", VX (4, 561), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4078{"evcmpltu", VX (4, 562), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4079{"evcmplts", VX (4, 563), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4080{"evcmpeq", VX (4, 564), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4081{"cget", APU(4, 284,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4082{"vadduhs", VX (4, 576), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4083{"vmul10euq", VX (4, 577), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4084{"vminuh", VX (4, 578), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4085{"vsrh", VX (4, 580), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4086{"vcmpgtuh", VXR(4, 582,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4087{"vmuleuh", VX (4, 584), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4088{"vrfiz", VX (4, 586), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4089{"vsplth", VX (4, 588), VXUIMM3_MASK, PPCVEC, 0, {VD, VB, UIMM3}},
4090{"vextractuh", VX (4, 589), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4091{"vupkhsh", VX (4, 590), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4092{"nget", APU(4, 300,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4093{"evsel", EVSEL(4,79), EVSEL_MASK, PPCSPE, 0, {RS, RA, RB, CRFS}},
4094{"ncget", APU(4, 316,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4095{"evfsadd", VX (4, 640), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4096{"vadduws", VX (4, 640), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4097{"evfssub", VX (4, 641), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 4098{"evfsmadd", VX (4, 642), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c 4099{"vminuw", VX (4, 642), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4100{"evfsmsub", VX (4, 643), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
4101{"evfsabs", VX (4, 644), VX_MASK, PPCSPE, 0, {RS, RA}},
4102{"vsrw", VX (4, 644), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4103{"evfsnabs", VX (4, 645), VX_MASK, PPCSPE, 0, {RS, RA}},
4104{"evfsneg", VX (4, 646), VX_MASK, PPCSPE, 0, {RS, RA}},
4105{"vcmpgtuw", VXR(4, 646,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4106{"evfssqrt", VX_RB_CONST(4, 647, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}},
14b57c7c
AM
4107{"vmuleuw", VX (4, 648), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4108{"evfsmul", VX (4, 648), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4109{"evfsdiv", VX (4, 649), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 4110{"evfsnmadd", VX (4, 650), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c 4111{"vrfip", VX (4, 650), VXVA_MASK, PPCVEC, 0, {VD, VB}},
74081948 4112{"evfsnmsub", VX (4, 651), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
4113{"evfscmpgt", VX (4, 652), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4114{"vspltw", VX (4, 652), VXUIMM2_MASK, PPCVEC, 0, {VD, VB, UIMM2}},
4115{"vextractuw", VX (4, 653), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4116{"evfscmplt", VX (4, 653), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4117{"evfscmpeq", VX (4, 654), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4118{"vupklsb", VX (4, 654), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4119{"evfscfui", VX (4, 656), VX_MASK, PPCSPE, 0, {RS, RB}},
74081948 4120{"evfscfh", VX_RA_CONST(4, 657, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4121{"evfscfsi", VX (4, 657), VX_MASK, PPCSPE, 0, {RS, RB}},
4122{"evfscfuf", VX (4, 658), VX_MASK, PPCSPE, 0, {RS, RB}},
4123{"evfscfsf", VX (4, 659), VX_MASK, PPCSPE, 0, {RS, RB}},
4124{"evfsctui", VX (4, 660), VX_MASK, PPCSPE, 0, {RS, RB}},
74081948 4125{"evfscth", VX_RA_CONST(4, 661, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4126{"evfsctsi", VX (4, 661), VX_MASK, PPCSPE, 0, {RS, RB}},
4127{"evfsctuf", VX (4, 662), VX_MASK, PPCSPE, 0, {RS, RB}},
4128{"evfsctsf", VX (4, 663), VX_MASK, PPCSPE, 0, {RS, RB}},
4129{"evfsctuiz", VX (4, 664), VX_MASK, PPCSPE, 0, {RS, RB}},
4130{"put", APU(4, 332,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
4131{"evfsctsiz", VX (4, 666), VX_MASK, PPCSPE, 0, {RS, RB}},
4132{"evfststgt", VX (4, 668), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4133{"evfststlt", VX (4, 669), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4134{"evfststeq", VX (4, 670), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
74081948
AF
4135{"evfsmax", VX (4, 672), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4136{"evfsmin", VX (4, 673), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4137{"evfsaddsub", VX (4, 674), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4138{"evfssubadd", VX (4, 675), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4139{"evfssum", VX (4, 676), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4140{"evfsdiff", VX (4, 677), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4141{"evfssumdiff", VX (4, 678), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4142{"evfsdiffsum", VX (4, 679), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4143{"evfsaddx", VX (4, 680), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4144{"evfssubx", VX (4, 681), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4145{"evfsaddsubx", VX (4, 682), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4146{"evfssubaddx", VX (4, 683), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4147{"evfsmulx", VX (4, 684), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4148{"evfsmule", VX (4, 686), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4149{"evfsmulo", VX (4, 687), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4150{"efsmax", VX (4, 688), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4151{"efsmin", VX (4, 689), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4152{"efdmax", VX (4, 696), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
14b57c7c 4153{"cput", APU(4, 348,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
74081948 4154{"efdmin", VX (4, 697), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
14b57c7c
AM
4155{"efsadd", VX (4, 704), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4156{"efssub", VX (4, 705), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948 4157{"efsmadd", VX (4, 706), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c 4158{"vminud", VX (4, 706), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4159{"efsmsub", VX (4, 707), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c
AM
4160{"efsabs", VX (4, 708), VX_MASK, PPCEFS, 0, {RS, RA}},
4161{"vsr", VX (4, 708), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4162{"efsnabs", VX (4, 709), VX_MASK, PPCEFS, 0, {RS, RA}},
4163{"efsneg", VX (4, 710), VX_MASK, PPCEFS, 0, {RS, RA}},
4164{"vcmpgtfp", VXR(4, 710,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4165{"efssqrt", VX_RB_CONST(4, 711, 0), VX_RB_CONST_MASK,PPCEFS2, 0, {RD, RA}},
14b57c7c
AM
4166{"vcmpgtud", VXR(4, 711,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
4167{"efsmul", VX (4, 712), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4168{"efsdiv", VX (4, 713), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948 4169{"efsnmadd", VX (4, 714), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c 4170{"vrfim", VX (4, 714), VXVA_MASK, PPCVEC, 0, {VD, VB}},
74081948 4171{"efsnmsub", VX (4, 715), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c
AM
4172{"efscmpgt", VX (4, 716), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4173{"vextractd", VX (4, 717), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4174{"efscmplt", VX (4, 717), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4175{"efscmpeq", VX (4, 718), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4176{"vupklsh", VX (4, 718), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4177{"efscfd", VX (4, 719), VX_MASK, PPCEFS, 0, {RS, RB}},
4178{"efscfui", VX (4, 720), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 4179{"efscfh", VX_RA_CONST(4, 721, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4180{"efscfsi", VX (4, 721), VX_MASK, PPCEFS, 0, {RS, RB}},
4181{"efscfuf", VX (4, 722), VX_MASK, PPCEFS, 0, {RS, RB}},
4182{"efscfsf", VX (4, 723), VX_MASK, PPCEFS, 0, {RS, RB}},
4183{"efsctui", VX (4, 724), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 4184{"efscth", VX_RA_CONST(4, 725, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4185{"efsctsi", VX (4, 725), VX_MASK, PPCEFS, 0, {RS, RB}},
4186{"efsctuf", VX (4, 726), VX_MASK, PPCEFS, 0, {RS, RB}},
4187{"efsctsf", VX (4, 727), VX_MASK, PPCEFS, 0, {RS, RB}},
4188{"efsctuiz", VX (4, 728), VX_MASK, PPCEFS, 0, {RS, RB}},
4189{"nput", APU(4, 364,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
4190{"efsctsiz", VX (4, 730), VX_MASK, PPCEFS, 0, {RS, RB}},
4191{"efststgt", VX (4, 732), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4192{"efststlt", VX (4, 733), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4193{"efststeq", VX (4, 734), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4194{"efdadd", VX (4, 736), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4195{"efdsub", VX (4, 737), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948
AF
4196{"efdmadd", VX (4, 738), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4197{"efdcfuid", VX (4, 738), VX_MASK, E500|E500MC,0, {RS, RB}},
4198{"efdmsub", VX (4, 739), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4199{"efdcfsid", VX (4, 739), VX_MASK, E500|E500MC,0, {RS, RB}},
14b57c7c
AM
4200{"efdabs", VX (4, 740), VX_MASK, PPCEFS, 0, {RS, RA}},
4201{"efdnabs", VX (4, 741), VX_MASK, PPCEFS, 0, {RS, RA}},
4202{"efdneg", VX (4, 742), VX_MASK, PPCEFS, 0, {RS, RA}},
74081948 4203{"efdsqrt", VX_RB_CONST(4, 743, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}},
14b57c7c
AM
4204{"efdmul", VX (4, 744), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4205{"efddiv", VX (4, 745), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948
AF
4206{"efdnmadd", VX (4, 746), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4207{"efdctuidz", VX (4, 746), VX_MASK, E500|E500MC,0, {RS, RB}},
4208{"efdnmsub", VX (4, 747), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4209{"efdctsidz", VX (4, 747), VX_MASK, E500|E500MC,0, {RS, RB}},
14b57c7c
AM
4210{"efdcmpgt", VX (4, 748), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4211{"efdcmplt", VX (4, 749), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4212{"efdcmpeq", VX (4, 750), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4213{"efdcfs", VX (4, 751), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948
AF
4214{"efdcfui", VX_RA_CONST(4, 752, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4215{"efdcfuid", VX_RA_CONST(4, 752, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
4216{"efdcfsi", VX_RA_CONST(4, 753, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4217{"efdcfsid", VX_RA_CONST(4, 753, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
4218{"efdcfh", VX_RA_CONST(4, 753, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4219{"efdcfuf", VX (4, 754), VX_MASK, PPCEFS, 0, {RS, RB}},
4220{"efdcfsf", VX (4, 755), VX_MASK, PPCEFS, 0, {RS, RB}},
4221{"efdctui", VX (4, 756), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 4222{"efdcth", VX_RA_CONST(4, 757, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4223{"efdctsi", VX (4, 757), VX_MASK, PPCEFS, 0, {RS, RB}},
4224{"efdctuf", VX (4, 758), VX_MASK, PPCEFS, 0, {RS, RB}},
4225{"efdctsf", VX (4, 759), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948
AF
4226{"efdctuiz", VX_RA_CONST(4, 760, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4227{"efdctuidz", VX_RA_CONST(4, 760, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
14b57c7c 4228{"ncput", APU(4, 380,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
74081948
AF
4229{"efdctsiz", VX_RA_CONST(4, 762, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4230{"efdctsidz", VX_RA_CONST(4, 762, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
14b57c7c
AM
4231{"efdtstgt", VX (4, 764), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4232{"efdtstlt", VX (4, 765), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4233{"efdtsteq", VX (4, 766), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4234{"evlddx", VX (4, 768), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4235{"vaddsbs", VX (4, 768), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4236{"evldd", VX (4, 769), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4237{"evldwx", VX (4, 770), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4238{"vminsb", VX (4, 770), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4239{"evldw", VX (4, 771), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4240{"evldhx", VX (4, 772), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4241{"vsrab", VX (4, 772), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4242{"evldh", VX (4, 773), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4243{"vcmpgtsb", VXR(4, 774,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4244{"evlhhesplatx",VX (4, 776), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4245{"vmulesb", VX (4, 776), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4246{"evlhhesplat", VX (4, 777), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4247{"vcfux", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4248{"vcuxwfp", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4249{"evlhhousplatx",VX(4, 780), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4250{"vspltisb", VX (4, 780), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4251{"vinsertb", VX (4, 781), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4252{"evlhhousplat",VX (4, 781), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4253{"evlhhossplatx",VX(4, 782), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4254{"vpkpx", VX (4, 782), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4255{"evlhhossplat",VX (4, 783), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4256{"mullhwu", XRC(4, 392,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4257{"evlwhex", VX (4, 784), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4258{"mullhwu.", XRC(4, 392,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4259{"evlwhe", VX (4, 785), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4260{"evlwhoux", VX (4, 788), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4261{"evlwhou", VX (4, 789), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4262{"evlwhosx", VX (4, 790), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4263{"evlwhos", VX (4, 791), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4264{"maclhwu", XO (4, 396,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4265{"evlwwsplatx", VX (4, 792), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4266{"maclhwu.", XO (4, 396,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4267{"evlwwsplat", VX (4, 793), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4268{"evlwhsplatx", VX (4, 796), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4269{"evlwhsplat", VX (4, 797), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4270{"evstddx", VX (4, 800), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4271{"evstdd", VX (4, 801), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4272{"evstdwx", VX (4, 802), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4273{"evstdw", VX (4, 803), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4274{"evstdhx", VX (4, 804), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4275{"evstdh", VX (4, 805), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4276{"evstwhex", VX (4, 816), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4277{"evstwhe", VX (4, 817), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4278{"evstwhox", VX (4, 820), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4279{"evstwho", VX (4, 821), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4280{"evstwwex", VX (4, 824), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4281{"evstwwe", VX (4, 825), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4282{"evstwwox", VX (4, 828), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4283{"evstwwo", VX (4, 829), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4284{"vaddshs", VX (4, 832), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4285{"bcdcpsgn.", VX (4, 833), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4286{"vminsh", VX (4, 834), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4287{"vsrah", VX (4, 836), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4288{"vcmpgtsh", VXR(4, 838,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4289{"vmulesh", VX (4, 840), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4290{"vcfsx", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4291{"vcsxwfp", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4292{"vspltish", VX (4, 844), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4293{"vinserth", VX (4, 845), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4294{"vupkhpx", VX (4, 846), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4295{"mullhw", XRC(4, 424,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4296{"mullhw.", XRC(4, 424,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4297{"maclhw", XO (4, 428,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4298{"maclhw.", XO (4, 428,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4299{"nmaclhw", XO (4, 430,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4300{"nmaclhw.", XO (4, 430,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4301{"vaddsws", VX (4, 896), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4302{"vminsw", VX (4, 898), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4303{"vsraw", VX (4, 900), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4304{"vcmpgtsw", VXR(4, 902,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4305{"vmulesw", VX (4, 904), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4306{"vctuxs", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4307{"vcfpuxws", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4308{"vspltisw", VX (4, 908), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4309{"vinsertw", VX (4, 909), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4310{"maclhwsu", XO (4, 460,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4311{"maclhwsu.", XO (4, 460,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4312{"vminsd", VX (4, 962), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4313{"vsrad", VX (4, 964), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4314{"vcmpbfp", VXR(4, 966,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4315{"vcmpgtsd", VXR(4, 967,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
4316{"vctsxs", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4317{"vcfpsxws", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4318{"vinsertd", VX (4, 973), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4319{"vupklpx", VX (4, 974), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4320{"maclhws", XO (4, 492,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4321{"maclhws.", XO (4, 492,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4322{"nmaclhws", XO (4, 494,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4323{"nmaclhws.", XO (4, 494,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4324{"vsububm", VX (4,1024), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4325{"bcdadd.", VX (4,1025), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
4326{"vavgub", VX (4,1026), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4327{"vabsdub", VX (4,1027), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4328{"evmhessf", VX (4,1027), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4329{"vand", VX (4,1028), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4330{"vcmpequb.", VXR(4, 6,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4331{"vcmpneb.", VXR(4, 7,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
62adc510
AM
4332{"udi0fcm.", APU(4, 515,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4333{"udi0fcm", APU(4, 515,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4334{"evmhossf", VX (4,1031), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4335{"vpmsumb", VX (4,1032), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4336{"evmheumi", VX (4,1032), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4337{"evmhesmi", VX (4,1033), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4338{"vmaxfp", VX (4,1034), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4339{"evmhesmf", VX (4,1035), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4340{"evmhoumi", VX (4,1036), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4341{"vslo", VX (4,1036), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4342{"evmhosmi", VX (4,1037), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4343{"evmhosmf", VX (4,1039), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4344{"machhwuo", XO (4, 12,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4345{"machhwuo.", XO (4, 12,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4346{"ps_merge00", XOPS(4,528,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4347{"ps_merge00.", XOPS(4,528,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4348{"evmhessfa", VX (4,1059), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4349{"evmhossfa", VX (4,1063), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4350{"evmheumia", VX (4,1064), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4351{"evmhesmia", VX (4,1065), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4352{"evmhesmfa", VX (4,1067), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4353{"evmhoumia", VX (4,1068), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4354{"evmhosmia", VX (4,1069), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4355{"evmhosmfa", VX (4,1071), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4356{"vsubuhm", VX (4,1088), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4357{"bcdsub.", VX (4,1089), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
4358{"vavguh", VX (4,1090), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4359{"evmwlssf", VX (4,1091), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4360{"vabsduh", VX (4,1091), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4361{"vandc", VX (4,1092), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4362{"vcmpequh.", VXR(4, 70,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4363{"udi1fcm.", APU(4, 547,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4364{"udi1fcm", APU(4, 547,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4365{"vcmpneh.", VXR(4, 71,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4366{"evmwhssf", VX (4,1095), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4367{"vpmsumh", VX (4,1096), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4368{"evmwlumi", VX (4,1096), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4369{"vminfp", VX (4,1098), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4370{"evmwlsmf", VX (4,1099), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4371{"evmwhumi", VX (4,1100), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4372{"vsro", VX (4,1100), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4373{"evmwhsmi", VX (4,1101), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4374{"vpkudum", VX (4,1102), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4375{"evmwhsmf", VX (4,1103), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4376{"evmwssf", VX (4,1107), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4377{"machhwo", XO (4, 44,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4378{"evmwumi", VX (4,1112), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4379{"machhwo.", XO (4, 44,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4380{"evmwsmi", VX (4,1113), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4381{"evmwsmf", VX (4,1115), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4382{"nmachhwo", XO (4, 46,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4383{"nmachhwo.", XO (4, 46,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4384{"ps_merge01", XOPS(4,560,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4385{"ps_merge01.", XOPS(4,560,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
74081948 4386{"evmwlssfa", VX (4,1123), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4387{"evmwhssfa", VX (4,1127), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4388{"evmwlumia", VX (4,1128), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 4389{"evmwlsmfa", VX (4,1131), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4390{"evmwhumia", VX (4,1132), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4391{"evmwhsmia", VX (4,1133), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4392{"evmwhsmfa", VX (4,1135), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4393{"evmwssfa", VX (4,1139), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4394{"evmwumia", VX (4,1144), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4395{"evmwsmia", VX (4,1145), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4396{"evmwsmfa", VX (4,1147), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4397{"vsubuwm", VX (4,1152), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4398{"bcdus.", VX (4,1153), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4399{"vavguw", VX (4,1154), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4400{"vabsduw", VX (4,1155), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
98553ad3 4401{"vmr", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VAB}},
14b57c7c
AM
4402{"vor", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4403{"vcmpnew.", VXR(4, 135,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4404{"vpmsumw", VX (4,1160), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4405{"vcmpequw.", VXR(4, 134,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4406{"udi2fcm.", APU(4, 579,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4407{"udi2fcm", APU(4, 579,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4408{"machhwsuo", XO (4, 76,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4409{"machhwsuo.", XO (4, 76,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4410{"ps_merge10", XOPS(4,592,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4411{"ps_merge10.", XOPS(4,592,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4412{"vsubudm", VX (4,1216), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4413{"evaddusiaaw", VX (4,1216), VX_MASK, PPCSPE, 0, {RS, RA}},
4414{"bcds.", VX (4,1217), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
4415{"evaddssiaaw", VX (4,1217), VX_MASK, PPCSPE, 0, {RS, RA}},
4416{"evsubfusiaaw",VX (4,1218), VX_MASK, PPCSPE, 0, {RS, RA}},
4417{"evsubfssiaaw",VX (4,1219), VX_MASK, PPCSPE, 0, {RS, RA}},
4418{"evmra", VX (4,1220), VX_MASK, PPCSPE, 0, {RS, RA}},
4419{"vxor", VX (4,1220), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4420{"evdivws", VX (4,1222), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4421{"vcmpeqfp.", VXR(4, 198,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 4422{"udi3fcm.", APU(4, 611,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c 4423{"vcmpequd.", VXR(4, 199,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 4424{"udi3fcm", APU(4, 611,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4425{"evdivwu", VX (4,1223), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4426{"vpmsumd", VX (4,1224), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4427{"evaddumiaaw", VX (4,1224), VX_MASK, PPCSPE, 0, {RS, RA}},
4428{"evaddsmiaaw", VX (4,1225), VX_MASK, PPCSPE, 0, {RS, RA}},
4429{"evsubfumiaaw",VX (4,1226), VX_MASK, PPCSPE, 0, {RS, RA}},
4430{"evsubfsmiaaw",VX (4,1227), VX_MASK, PPCSPE, 0, {RS, RA}},
4431{"vpkudus", VX (4,1230), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4432{"machhwso", XO (4, 108,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4433{"machhwso.", XO (4, 108,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4434{"nmachhwso", XO (4, 110,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4435{"nmachhwso.", XO (4, 110,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4436{"ps_merge11", XOPS(4,624,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4437{"ps_merge11.", XOPS(4,624,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4438{"vsubuqm", VX (4,1280), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4439{"evmheusiaaw", VX (4,1280), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4440{"bcdtrunc.", VX (4,1281), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
4441{"evmhessiaaw", VX (4,1281), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4442{"vavgsb", VX (4,1282), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4443{"evmhessfaaw", VX (4,1283), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4444{"evmhousiaaw", VX (4,1284), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
98553ad3 4445{"vnot", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VAB}},
14b57c7c
AM
4446{"vnor", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4447{"evmhossiaaw", VX (4,1285), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
62adc510
AM
4448{"udi4fcm.", APU(4, 643,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4449{"udi4fcm", APU(4, 643,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4450{"vcmpnezb.", VXR(4, 263,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4451{"evmhossfaaw", VX (4,1287), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4452{"evmheumiaaw", VX (4,1288), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4453{"vcipher", VX (4,1288), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4454{"vcipherlast", VX (4,1289), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4455{"evmhesmiaaw", VX (4,1289), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4456{"evmhesmfaaw", VX (4,1291), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4457{"vgbbd", VX (4,1292), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4458{"evmhoumiaaw", VX (4,1292), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4459{"evmhosmiaaw", VX (4,1293), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4460{"evmhosmfaaw", VX (4,1295), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4461{"macchwuo", XO (4, 140,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4462{"macchwuo.", XO (4, 140,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4463{"evmhegumiaa", VX (4,1320), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4464{"evmhegsmiaa", VX (4,1321), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4465{"evmhegsmfaa", VX (4,1323), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4466{"evmhogumiaa", VX (4,1324), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4467{"evmhogsmiaa", VX (4,1325), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4468{"evmhogsmfaa", VX (4,1327), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4469{"vsubcuq", VX (4,1344), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4470{"evmwlusiaaw", VX (4,1344), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4471{"bcdutrunc.", VX (4,1345), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4472{"evmwlssiaaw", VX (4,1345), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4473{"vavgsh", VX (4,1346), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948
AF
4474{"evmwlssfaaw", VX (4,1347), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4475{"evmwhusiaa", VX (4,1348), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4476{"vorc", VX (4,1348), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4477{"evmwhssmaa", VX (4,1349), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
62adc510
AM
4478{"udi5fcm.", APU(4, 675,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4479{"udi5fcm", APU(4, 675,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c 4480{"vcmpnezh.", VXR(4, 327,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
74081948 4481{"evmwhssfaa", VX (4,1351), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4482{"vncipher", VX (4,1352), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4483{"evmwlumiaaw", VX (4,1352), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4484{"vncipherlast",VX (4,1353), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4485{"evmwlsmiaaw", VX (4,1353), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
4486{"evmwlsmfaaw", VX (4,1355), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4487{"evmwhumiaa", VX (4,1356), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4488{"vbpermq", VX (4,1356), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4489{"evmwhsmiaa", VX (4,1357), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4490{"vpksdus", VX (4,1358), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4491{"evmwhsmfaa", VX (4,1359), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4492{"evmwssfaa", VX (4,1363), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4493{"macchwo", XO (4, 172,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4494{"evmwumiaa", VX (4,1368), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4495{"macchwo.", XO (4, 172,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4496{"evmwsmiaa", VX (4,1369), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4497{"evmwsmfaa", VX (4,1371), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4498{"nmacchwo", XO (4, 174,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4499{"nmacchwo.", XO (4, 174,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
74081948
AF
4500{"evmwhgumiaa", VX (4,1380), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4501{"evmwhgsmiaa", VX (4,1381), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4502{"evmwhgssfaa", VX (4,1383), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4503{"evmwhgsmfaa", VX (4,1391), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4504{"evmheusianw", VX (4,1408), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4505{"vsubcuw", VX (4,1408), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4506{"evmhessianw", VX (4,1409), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4507{"bcdctsq.", VXVA(4,1409,0), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4508{"bcdcfsq.", VXVA(4,1409,2), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4509{"bcdctz.", VXVA(4,1409,4), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4510{"bcdctn.", VXVA(4,1409,5), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4511{"bcdcfz.", VXVA(4,1409,6), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4512{"bcdcfn.", VXVA(4,1409,7), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4513{"bcdsetsgn.", VXVA(4,1409,31), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4514{"vavgsw", VX (4,1410), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4515{"evmhessfanw", VX (4,1411), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4516{"vnand", VX (4,1412), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4517{"evmhousianw", VX (4,1412), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4518{"evmhossianw", VX (4,1413), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
62adc510
AM
4519{"udi6fcm.", APU(4, 707,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4520{"udi6fcm", APU(4, 707,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4521{"vcmpnezw.", VXR(4, 391,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4522{"evmhossfanw", VX (4,1415), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4523{"evmheumianw", VX (4,1416), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4524{"evmhesmianw", VX (4,1417), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4525{"evmhesmfanw", VX (4,1419), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4526{"evmhoumianw", VX (4,1420), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4527{"evmhosmianw", VX (4,1421), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4528{"evmhosmfanw", VX (4,1423), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4529{"macchwsuo", XO (4, 204,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4530{"macchwsuo.", XO (4, 204,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4531{"evmhegumian", VX (4,1448), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4532{"evmhegsmian", VX (4,1449), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4533{"evmhegsmfan", VX (4,1451), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4534{"evmhogumian", VX (4,1452), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4535{"evmhogsmian", VX (4,1453), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4536{"evmhogsmfan", VX (4,1455), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4537{"evmwlusianw", VX (4,1472), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4538{"bcdsr.", VX (4,1473), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
4539{"evmwlssianw", VX (4,1473), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
4540{"evmwlssfanw", VX (4,1475), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4541{"evmwhusian", VX (4,1476), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4542{"vsld", VX (4,1476), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4543{"evmwhssian", VX (4,1477), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4544{"vcmpgefp.", VXR(4, 454,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4545{"udi7fcm.", APU(4, 739,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4546{"udi7fcm", APU(4, 739,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
74081948 4547{"evmwhssfan", VX (4,1479), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4548{"vsbox", VX (4,1480), VXVB_MASK, PPCVEC2, 0, {VD, VA}},
4549{"evmwlumianw", VX (4,1480), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4550{"evmwlsmianw", VX (4,1481), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
4551{"evmwlsmfanw", VX (4,1483), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4552{"evmwhumian", VX (4,1484), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4553{"vbpermd", VX (4,1484), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
74081948 4554{"evmwhsmian", VX (4,1485), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4555{"vpksdss", VX (4,1486), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4556{"evmwhsmfan", VX (4,1487), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4557{"evmwssfan", VX (4,1491), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4558{"macchwso", XO (4, 236,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4559{"evmwumian", VX (4,1496), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4560{"macchwso.", XO (4, 236,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4561{"evmwsmian", VX (4,1497), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4562{"evmwsmfan", VX (4,1499), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
4563{"evmwhgumian", VX (4,1508), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4564{"evmwhgsmian", VX (4,1509), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4565{"evmwhgssfan", VX (4,1511), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4566{"evmwhgsmfan", VX (4,1519), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4567{"nmacchwso", XO (4, 238,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4568{"nmacchwso.", XO (4, 238,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4569{"vsububs", VX (4,1536), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4570{"vclzlsbb", VXVA(4,1538,0), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
4571{"vctzlsbb", VXVA(4,1538,1), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
4572{"vnegw", VXVA(4,1538,6), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4573{"vnegd", VXVA(4,1538,7), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4574{"vprtybw", VXVA(4,1538,8), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4575{"vprtybd", VXVA(4,1538,9), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4576{"vprtybq", VXVA(4,1538,10), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4577{"vextsb2w", VXVA(4,1538,16), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4578{"vextsh2w", VXVA(4,1538,17), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4579{"vextsb2d", VXVA(4,1538,24), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4580{"vextsh2d", VXVA(4,1538,25), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4581{"vextsw2d", VXVA(4,1538,26), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4582{"vctzb", VXVA(4,1538,28), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4583{"vctzh", VXVA(4,1538,29), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4584{"vctzw", VXVA(4,1538,30), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4585{"vctzd", VXVA(4,1538,31), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4586{"mfvscr", VX (4,1540), VXVAVB_MASK, PPCVEC, 0, {VD}},
4587{"vcmpgtub.", VXR(4, 518,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4588{"udi8fcm.", APU(4, 771,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4589{"udi8fcm", APU(4, 771,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4590{"vsum4ubs", VX (4,1544), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4591{"vextublx", VX (4,1549), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4592{"vsubuhs", VX (4,1600), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4593{"mtvscr", VX (4,1604), VXVDVA_MASK, PPCVEC, 0, {VB}},
4594{"vcmpgtuh.", VXR(4, 582,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4595{"vsum4shs", VX (4,1608), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4596{"udi9fcm.", APU(4, 804,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4597{"udi9fcm", APU(4, 804,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4598{"vextuhlx", VX (4,1613), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4599{"vupkhsw", VX (4,1614), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4600{"vsubuws", VX (4,1664), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4601{"vshasigmaw", VX (4,1666), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
4602{"veqv", VX (4,1668), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4603{"vcmpgtuw.", VXR(4, 646,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4604{"udi10fcm.", APU(4, 835,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4605{"udi10fcm", APU(4, 835,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4606{"vsum2sws", VX (4,1672), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4607{"vmrgow", VX (4,1676), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4608{"vextuwlx", VX (4,1677), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4609{"vshasigmad", VX (4,1730), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
4610{"vsrd", VX (4,1732), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4611{"vcmpgtfp.", VXR(4, 710,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 4612{"udi11fcm.", APU(4, 867,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 4613{"vcmpgtud.", VXR(4, 711,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 4614{"udi11fcm", APU(4, 867,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4615{"vupklsw", VX (4,1742), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4616{"vsubsbs", VX (4,1792), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4617{"vclzb", VX (4,1794), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4618{"vpopcntb", VX (4,1795), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4619{"vsrv", VX (4,1796), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4620{"vcmpgtsb.", VXR(4, 774,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4621{"udi12fcm.", APU(4, 899,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4622{"udi12fcm", APU(4, 899,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4623{"vsum4sbs", VX (4,1800), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4624{"vextubrx", VX (4,1805), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4625{"maclhwuo", XO (4, 396,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4626{"maclhwuo.", XO (4, 396,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4627{"vsubshs", VX (4,1856), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4628{"vclzh", VX (4,1858), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4629{"vpopcnth", VX (4,1859), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4630{"vslv", VX (4,1860), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4631{"vcmpgtsh.", VXR(4, 838,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4632{"vextuhrx", VX (4,1869), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
62adc510
AM
4633{"udi13fcm.", APU(4, 931,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4634{"udi13fcm", APU(4, 931,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4635{"maclhwo", XO (4, 428,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4636{"maclhwo.", XO (4, 428,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4637{"nmaclhwo", XO (4, 430,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4638{"nmaclhwo.", XO (4, 430,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4639{"vsubsws", VX (4,1920), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4640{"vclzw", VX (4,1922), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4641{"vpopcntw", VX (4,1923), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4642{"vcmpgtsw.", VXR(4, 902,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4643{"udi14fcm.", APU(4, 963,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4644{"udi14fcm", APU(4, 963,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4645{"vsumsws", VX (4,1928), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4646{"vmrgew", VX (4,1932), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4647{"vextuwrx", VX (4,1933), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4648{"maclhwsuo", XO (4, 460,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4649{"maclhwsuo.", XO (4, 460,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4650{"vclzd", VX (4,1986), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4651{"vpopcntd", VX (4,1987), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4652{"vcmpbfp.", VXR(4, 966,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 4653{"udi15fcm.", APU(4, 995,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 4654{"vcmpgtsd.", VXR(4, 967,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 4655{"udi15fcm", APU(4, 995,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4656{"maclhwso", XO (4, 492,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4657{"maclhwso.", XO (4, 492,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4658{"nmaclhwso", XO (4, 494,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4659{"nmaclhwso.", XO (4, 494,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4660{"dcbz_l", X (4,1014), XRT_MASK, PPCPS, 0, {RA, RB}},
4661
4662{"mulli", OP(7), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4663{"muli", OP(7), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4664
4665{"subfic", OP(8), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4666{"sfi", OP(8), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4667
4668{"dozi", OP(9), OP_MASK, M601, PPCVLE, {RT, RA, SI}},
4669
4670{"cmplwi", OPL(10,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, UISIGNOPT}},
4671{"cmpldi", OPL(10,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, UISIGNOPT}},
a5721ba2 4672{"cmpli", OP(10), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, UISIGNOPT}},
14b57c7c
AM
4673{"cmpli", OP(10), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, UISIGNOPT}},
4674
4675{"cmpwi", OPL(11,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, SI}},
4676{"cmpdi", OPL(11,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, SI}},
a5721ba2 4677{"cmpi", OP(11), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, SI}},
14b57c7c
AM
4678{"cmpi", OP(11), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, SI}},
4679
4680{"addic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4681{"ai", OP(12), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4682{"subic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}},
4683
4684{"addic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4685{"ai.", OP(13), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4686{"subic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}},
4687
4688{"li", OP(14), DRA_MASK, PPCCOM, PPCVLE, {RT, SI}},
4689{"lil", OP(14), DRA_MASK, PWRCOM, PPCVLE, {RT, SI}},
4690{"addi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SI}},
4691{"cal", OP(14), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
4692{"subi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSI}},
4693{"la", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}},
4694
4695{"lis", OP(15), DRA_MASK, PPCCOM, PPCVLE, {RT, SISIGNOPT}},
4696{"liu", OP(15), DRA_MASK, PWRCOM, PPCVLE, {RT, SISIGNOPT}},
4697{"addis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
4698{"cau", OP(15), OP_MASK, PWRCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
4699{"subis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSISIGNOPT}},
4700
4701{"bdnz-", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4702{"bdnz+", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4703{"bdnz", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}},
4704{"bdn", BBO(16,BODNZ,0,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}},
4705{"bdnzl-", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4706{"bdnzl+", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4707{"bdnzl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}},
4708{"bdnl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}},
4709{"bdnza-", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4710{"bdnza+", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4711{"bdnza", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}},
4712{"bdna", BBO(16,BODNZ,1,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}},
4713{"bdnzla-", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4714{"bdnzla+", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4715{"bdnzla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}},
4716{"bdnla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}},
4717{"bdz-", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4718{"bdz+", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4719{"bdz", BBO(16,BODZ,0,0), BBOATBI_MASK, COM, PPCVLE, {BD}},
4720{"bdzl-", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4721{"bdzl+", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4722{"bdzl", BBO(16,BODZ,0,1), BBOATBI_MASK, COM, PPCVLE, {BD}},
4723{"bdza-", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4724{"bdza+", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4725{"bdza", BBO(16,BODZ,1,0), BBOATBI_MASK, COM, PPCVLE, {BDA}},
4726{"bdzla-", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4727{"bdzla+", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4728{"bdzla", BBO(16,BODZ,1,1), BBOATBI_MASK, COM, PPCVLE, {BDA}},
4729
4730{"bge-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4731{"bge+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4732{"bge", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4733{"bnl-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4734{"bnl+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4735{"bnl", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4736{"bgel-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4737{"bgel+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4738{"bgel", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4739{"bnll-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4740{"bnll+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4741{"bnll", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4742{"bgea-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4743{"bgea+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4744{"bgea", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4745{"bnla-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4746{"bnla+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4747{"bnla", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4748{"bgela-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4749{"bgela+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4750{"bgela", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4751{"bnlla-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4752{"bnlla+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4753{"bnlla", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4754{"ble-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4755{"ble+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4756{"ble", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4757{"bng-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4758{"bng+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4759{"bng", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4760{"blel-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4761{"blel+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4762{"blel", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4763{"bngl-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4764{"bngl+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4765{"bngl", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4766{"blea-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4767{"blea+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4768{"blea", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4769{"bnga-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4770{"bnga+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4771{"bnga", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4772{"blela-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4773{"blela+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4774{"blela", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4775{"bngla-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4776{"bngla+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4777{"bngla", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4778{"bne-", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4779{"bne+", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4780{"bne", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4781{"bnel-", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4782{"bnel+", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4783{"bnel", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4784{"bnea-", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4785{"bnea+", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4786{"bnea", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4787{"bnela-", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4788{"bnela+", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4789{"bnela", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4790{"bns-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4791{"bns+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4792{"bns", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4793{"bnu-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4794{"bnu+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4795{"bnu", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
4796{"bnsl-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4797{"bnsl+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4798{"bnsl", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4799{"bnul-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4800{"bnul+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4801{"bnul", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
4802{"bnsa-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4803{"bnsa+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4804{"bnsa", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4805{"bnua-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4806{"bnua+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4807{"bnua", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
4808{"bnsla-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4809{"bnsla+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4810{"bnsla", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4811{"bnula-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4812{"bnula+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4813{"bnula", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
4814
4815{"blt-", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4816{"blt+", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4817{"blt", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4818{"bltl-", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4819{"bltl+", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4820{"bltl", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4821{"blta-", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4822{"blta+", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4823{"blta", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4824{"bltla-", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4825{"bltla+", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4826{"bltla", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4827{"bgt-", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4828{"bgt+", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4829{"bgt", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4830{"bgtl-", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4831{"bgtl+", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4832{"bgtl", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4833{"bgta-", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4834{"bgta+", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4835{"bgta", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4836{"bgtla-", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4837{"bgtla+", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4838{"bgtla", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4839{"beq-", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4840{"beq+", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4841{"beq", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4842{"beql-", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4843{"beql+", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4844{"beql", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4845{"beqa-", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4846{"beqa+", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4847{"beqa", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4848{"beqla-", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4849{"beqla+", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4850{"beqla", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4851{"bso-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4852{"bso+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4853{"bso", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4854{"bun-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4855{"bun+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4856{"bun", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
4857{"bsol-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4858{"bsol+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4859{"bsol", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4860{"bunl-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4861{"bunl+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4862{"bunl", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
4863{"bsoa-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4864{"bsoa+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4865{"bsoa", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4866{"buna-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4867{"buna+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4868{"buna", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
4869{"bsola-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4870{"bsola+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4871{"bsola", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4872{"bunla-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4873{"bunla+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4874{"bunla", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
4875
4876{"bdnzf-", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4877{"bdnzf+", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4878{"bdnzf", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4879{"bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4880{"bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4881{"bdnzfl", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4882{"bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4883{"bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4884{"bdnzfa", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4885{"bdnzfla-", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4886{"bdnzfla+", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4887{"bdnzfla", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4888{"bdzf-", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4889{"bdzf+", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4890{"bdzf", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4891{"bdzfl-", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4892{"bdzfl+", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4893{"bdzfl", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4894{"bdzfa-", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4895{"bdzfa+", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4896{"bdzfa", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4897{"bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4898{"bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4899{"bdzfla", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4900
4901{"bf-", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
4902{"bf+", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
4903{"bf", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
4904{"bbf", BBO(16,BOF,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
4905{"bfl-", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
4906{"bfl+", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
4907{"bfl", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
4908{"bbfl", BBO(16,BOF,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
4909{"bfa-", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
4910{"bfa+", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
4911{"bfa", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4912{"bbfa", BBO(16,BOF,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
4913{"bfla-", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
4914{"bfla+", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
4915{"bfla", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4916{"bbfla", BBO(16,BOF,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
4917
4918{"bdnzt-", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4919{"bdnzt+", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4920{"bdnzt", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4921{"bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4922{"bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4923{"bdnztl", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4924{"bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4925{"bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4926{"bdnzta", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4927{"bdnztla-", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4928{"bdnztla+", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4929{"bdnztla", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4930{"bdzt-", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4931{"bdzt+", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4932{"bdzt", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4933{"bdztl-", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4934{"bdztl+", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4935{"bdztl", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4936{"bdzta-", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4937{"bdzta+", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4938{"bdzta", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4939{"bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4940{"bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4941{"bdztla", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4942
4943{"bt-", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
4944{"bt+", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
4945{"bt", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
4946{"bbt", BBO(16,BOT,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
4947{"btl-", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
4948{"btl+", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
4949{"btl", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
4950{"bbtl", BBO(16,BOT,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
4951{"bta-", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
4952{"bta+", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
4953{"bta", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4954{"bbta", BBO(16,BOT,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
4955{"btla-", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
4956{"btla+", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
4957{"btla", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4958{"bbtla", BBO(16,BOT,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
4959
aae9718e
PB
4960{"bc-", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDM}},
4961{"bc+", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDP}},
14b57c7c 4962{"bc", B(16,0,0), B_MASK, COM, PPCVLE, {BO, BI, BD}},
aae9718e
PB
4963{"bcl-", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDM}},
4964{"bcl+", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDP}},
14b57c7c 4965{"bcl", B(16,0,1), B_MASK, COM, PPCVLE, {BO, BI, BD}},
aae9718e
PB
4966{"bca-", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDMA}},
4967{"bca+", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDPA}},
14b57c7c 4968{"bca", B(16,1,0), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
aae9718e
PB
4969{"bcla-", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDMA}},
4970{"bcla+", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDPA}},
14b57c7c
AM
4971{"bcla", B(16,1,1), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
4972
4973{"svc", SC(17,0,0), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
dce75bf9 4974{"scv", SC(17,0,1), SC_MASK, POWER9, PPCVLE, {SVC_LEV}},
14b57c7c
AM
4975{"svcl", SC(17,0,1), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
4976{"sc", SC(17,1,0), SC_MASK, PPC, PPCVLE, {LEV}},
4977{"svca", SC(17,1,0), SC_MASK, PWRCOM, PPCVLE, {SV}},
4978{"svcla", SC(17,1,1), SC_MASK, POWER, PPCVLE, {SV}},
4979
4980{"b", B(18,0,0), B_MASK, COM, PPCVLE, {LI}},
4981{"bl", B(18,0,1), B_MASK, COM, PPCVLE, {LI}},
4982{"ba", B(18,1,0), B_MASK, COM, PPCVLE, {LIA}},
4983{"bla", B(18,1,1), B_MASK, COM, PPCVLE, {LIA}},
4984
4985{"mcrf", XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
4986
1437d063 4987{"lnia", DX(19,2), NODX_MASK, POWER9, PPCVLE, {RT}},
14b57c7c
AM
4988{"addpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, DXD}},
4989{"subpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, NDXD}},
4990
14b57c7c 4991{"bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
14b57c7c 4992{"bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
66e85460
AM
4993{"bdnzlr", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
4994{"bdnzlrl-", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
14b57c7c 4995{"bdnzlrl+", XLO(19,BODNZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
66e85460 4996{"bdnzlrl", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
14b57c7c 4997{"bdzlr-", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
14b57c7c 4998{"bdzlr+", XLO(19,BODZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
66e85460
AM
4999{"bdzlr", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
5000{"bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
14b57c7c 5001{"bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
66e85460 5002{"bdzlrl", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
14b57c7c
AM
5003{"blr", XLO(19,BOU,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
5004{"br", XLO(19,BOU,16,0), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}},
5005{"blrl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
5006{"brl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}},
5007{"bdnzlr-", XLO(19,BODNZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5008{"bdnzlrl-", XLO(19,BODNZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5009{"bdnzlr+", XLO(19,BODNZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5010{"bdnzlrl+", XLO(19,BODNZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5011{"bdzlr-", XLO(19,BODZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5012{"bdzlrl-", XLO(19,BODZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5013{"bdzlr+", XLO(19,BODZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5014{"bdzlrl+", XLO(19,BODZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5015
14b57c7c 5016{"bgelr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5017{"bgelr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5018{"bgelr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5019{"bger", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5020{"bnllr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5021{"bnllr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5022{"bnllr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5023{"bnlr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5024{"bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5025{"bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5026{"bgelrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5027{"bgerl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5028{"bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5029{"bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5030{"bnllrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5031{"bnlrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5032{"blelr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5033{"blelr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5034{"blelr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5035{"bler", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5036{"bnglr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5037{"bnglr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5038{"bnglr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5039{"bngr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5040{"blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5041{"blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5042{"blelrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5043{"blerl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5044{"bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5045{"bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5046{"bnglrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5047{"bngrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5048{"bnelr-", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5049{"bnelr+", XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5050{"bnelr", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5051{"bner", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5052{"bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5053{"bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5054{"bnelrl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5055{"bnerl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5056{"bnslr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5057{"bnslr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5058{"bnslr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5059{"bnsr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5060{"bnulr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5061{"bnulr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5062{"bnulr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5063{"bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5064{"bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5065{"bnslrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5066{"bnsrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5067{"bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5068{"bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460 5069{"bnulrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c
AM
5070{"bgelr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5071{"bnllr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5072{"bgelrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5073{"bnllrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5074{"blelr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5075{"bnglr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5076{"blelrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5077{"bnglrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5078{"bnelr-", XLOCB(19,BOFM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5079{"bnelrl-", XLOCB(19,BOFM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5080{"bnslr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5081{"bnulr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5082{"bnslrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5083{"bnulrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5084{"bgelr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5085{"bnllr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5086{"bgelrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5087{"bnllrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5088{"blelr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5089{"bnglr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5090{"blelrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5091{"bnglrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5092{"bnelr+", XLOCB(19,BOFP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5093{"bnelrl+", XLOCB(19,BOFP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5094{"bnslr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5095{"bnulr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5096{"bnslrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5097{"bnulrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
14b57c7c 5098{"bltlr-", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5099{"bltlr+", XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5100{"bltlr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5101{"bltr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5102{"bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5103{"bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5104{"bltlrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5105{"bltrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5106{"bgtlr-", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5107{"bgtlr+", XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5108{"bgtlr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5109{"bgtr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5110{"bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5111{"bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5112{"bgtlrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5113{"bgtrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5114{"beqlr-", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5115{"beqlr+", XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5116{"beqlr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5117{"beqr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5118{"beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5119{"beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5120{"beqlrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5121{"beqrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5122{"bsolr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5123{"bsolr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5124{"bsolr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5125{"bsor", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5126{"bunlr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5127{"bunlr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5128{"bunlr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5129{"bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5130{"bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5131{"bsolrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 5132{"bsorl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 5133{"bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5134{"bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460 5135{"bunlrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c
AM
5136{"bltlr-", XLOCB(19,BOTM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5137{"bltlrl-", XLOCB(19,BOTM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5138{"bgtlr-", XLOCB(19,BOTM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5139{"bgtlrl-", XLOCB(19,BOTM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5140{"beqlr-", XLOCB(19,BOTM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5141{"beqlrl-", XLOCB(19,BOTM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5142{"bsolr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5143{"bunlr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5144{"bsolrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5145{"bunlrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5146{"bltlr+", XLOCB(19,BOTP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5147{"bltlrl+", XLOCB(19,BOTP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5148{"bgtlr+", XLOCB(19,BOTP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5149{"bgtlrl+", XLOCB(19,BOTP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5150{"beqlr+", XLOCB(19,BOTP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5151{"beqlrl+", XLOCB(19,BOTP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5152{"bsolr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5153{"bunlr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5154{"bsolrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5155{"bunlrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5156
14b57c7c 5157{"bdnzflr-", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5158{"bdnzflr+", XLO(19,BODNZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5159{"bdnzflr", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5160{"bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5161{"bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5162{"bdnzflrl", XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5163{"bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5164{"bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5165{"bdzflr", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5166{"bdzflrl-", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5167{"bdzflrl+", XLO(19,BODZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5168{"bdzflrl", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5169{"bflr-", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5170{"bflr+", XLO(19,BOFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5171{"bflr", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5172{"bbfr", XLO(19,BOF,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
14b57c7c 5173{"bflrl-", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5174{"bflrl+", XLO(19,BOFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5175{"bflrl", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5176{"bbfrl", XLO(19,BOF,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
14b57c7c
AM
5177{"bflr-", XLO(19,BOFM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5178{"bflrl-", XLO(19,BOFM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5179{"bflr+", XLO(19,BOFP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5180{"bflrl+", XLO(19,BOFP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
14b57c7c 5181{"bdnztlr-", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5182{"bdnztlr+", XLO(19,BODNZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5183{"bdnztlr", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5184{"bdnztlrl-", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5185{"bdnztlrl+", XLO(19,BODNZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5186{"bdnztlrl", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5187{"bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5188{"bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5189{"bdztlr", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5190{"bdztlrl-", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5191{"bdztlrl+", XLO(19,BODZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5192{"bdztlrl", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5193{"btlr-", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5194{"btlr+", XLO(19,BOTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5195{"btlr", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5196{"bbtr", XLO(19,BOT,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
14b57c7c 5197{"btlrl-", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5198{"btlrl+", XLO(19,BOTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5199{"btlrl", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5200{"bbtrl", XLO(19,BOT,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
14b57c7c
AM
5201{"btlr-", XLO(19,BOTM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5202{"btlrl-", XLO(19,BOTM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5203{"btlr+", XLO(19,BOTP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5204{"btlrl+", XLO(19,BOTP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5205
66e85460
AM
5206{"bclr-", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5207{"bclr+", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 5208{"bclr", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460
AM
5209{"bcr", XLLK(19,16,0), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
5210{"bclrl-", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5211{"bclrl+", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 5212{"bclrl", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460 5213{"bcrl", XLLK(19,16,1), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
14b57c7c
AM
5214
5215{"rfid", XL(19,18), 0xffffffff, PPC64, PPCVLE, {0}},
5216
98553ad3 5217{"crnot", XL(19,33), XL_MASK, PPCCOM, PPCVLE, {BT, BAB}},
14b57c7c
AM
5218{"crnor", XL(19,33), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5219{"rfmci", X(19,38), 0xffffffff, PPCRFMCI|PPCA2|PPC476, PPCVLE, {0}},
5220
5221{"rfdi", XL(19,39), 0xffffffff, E500MC, PPCVLE, {0}},
5222{"rfi", XL(19,50), 0xffffffff, COM, PPCVLE, {0}},
5223{"rfci", XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2|PPC476, PPCVLE, {0}},
5224
dce75bf9 5225{"rfscv", XL(19,82), 0xffffffff, POWER9, PPCVLE, {0}},
14b57c7c
AM
5226{"rfsvc", XL(19,82), 0xffffffff, POWER, PPCVLE, {0}},
5227
5228{"rfgi", XL(19,102), 0xffffffff, E500MC|PPCA2, PPCVLE, {0}},
5229
5230{"crandc", XL(19,129), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5231
5232{"rfebb", XL(19,146), XLS_MASK, POWER8, PPCVLE, {SXL}},
5233
5234{"isync", XL(19,150), 0xffffffff, PPCCOM, PPCVLE, {0}},
5235{"ics", XL(19,150), 0xffffffff, PWRCOM, PPCVLE, {0}},
5236
98553ad3 5237{"crclr", XL(19,193), XL_MASK, PPCCOM, PPCVLE, {BTAB}},
14b57c7c
AM
5238{"crxor", XL(19,193), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5239
5240{"dnh", X(19,198), X_MASK, E500MC, PPCVLE, {DUI, DUIS}},
5241
5242{"crnand", XL(19,225), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5243
5244{"crand", XL(19,257), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5245
5246{"hrfid", XL(19,274), 0xffffffff, POWER5|CELL, PPC476|PPCVLE, {0}},
5247
98553ad3 5248{"crset", XL(19,289), XL_MASK, PPCCOM, PPCVLE, {BTAB}},
14b57c7c
AM
5249{"creqv", XL(19,289), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5250
5251{"urfid", XL(19,306), 0xffffffff, POWER9, PPCVLE, {0}},
5252{"stop", XL(19,370), 0xffffffff, POWER9, PPCVLE, {0}},
5253
5254{"doze", XL(19,402), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5255
5256{"crorc", XL(19,417), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5257
5258{"nap", XL(19,434), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5259
98553ad3 5260{"crmove", XL(19,449), XL_MASK, PPCCOM, PPCVLE, {BT, BAB}},
14b57c7c
AM
5261{"cror", XL(19,449), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5262
5263{"sleep", XL(19,466), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5264{"rvwinkle", XL(19,498), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5265
5266{"bctr", XLO(19,BOU,528,0), XLBOBIBB_MASK, COM, PPCVLE, {0}},
5267{"bctrl", XLO(19,BOU,528,1), XLBOBIBB_MASK, COM, PPCVLE, {0}},
5268
14b57c7c 5269{"bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5270{"bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5271{"bgectr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5272{"bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5273{"bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5274{"bnlctr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5275{"bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5276{"bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5277{"bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5278{"bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5279{"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5280{"bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5281{"blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5282{"blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5283{"blectr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5284{"bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5285{"bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5286{"bngctr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5287{"blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5288{"blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5289{"blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5290{"bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5291{"bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5292{"bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5293{"bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5294{"bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5295{"bnectr", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5296{"bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5297{"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5298{"bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5299{"bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5300{"bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5301{"bnsctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5302{"bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5303{"bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5304{"bnuctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5305{"bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5306{"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5307{"bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5308{"bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5309{"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460 5310{"bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c
AM
5311{"bgectr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5312{"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5313{"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5314{"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5315{"blectr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5316{"bngctr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5317{"blectrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5318{"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5319{"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5320{"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5321{"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5322{"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5323{"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5324{"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5325{"bgectr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5326{"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5327{"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5328{"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5329{"blectr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5330{"bngctr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5331{"blectrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5332{"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5333{"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5334{"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5335{"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5336{"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5337{"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5338{"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
14b57c7c 5339{"bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5340{"bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5341{"bltctr", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5342{"bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5343{"bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5344{"bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5345{"bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5346{"bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5347{"bgtctr", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5348{"bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5349{"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5350{"bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5351{"beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5352{"beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5353{"beqctr", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5354{"beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5355{"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5356{"beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5357{"bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5358{"bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5359{"bsoctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5360{"bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5361{"bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5362{"bunctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5363{"bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5364{"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5365{"bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5366{"bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5367{"bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460 5368{"bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c
AM
5369{"bltctr-", XLOCB(19,BOTM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5370{"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5371{"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5372{"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5373{"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5374{"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5375{"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5376{"bunctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5377{"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5378{"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5379{"bltctr+", XLOCB(19,BOTP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5380{"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5381{"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5382{"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5383{"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5384{"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5385{"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5386{"bunctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5387{"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5388{"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5389
14b57c7c 5390{"bfctr-", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5391{"bfctr+", XLO(19,BOFP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5392{"bfctr", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5393{"bfctrl-", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5394{"bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5395{"bfctrl", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c
AM
5396{"bfctr-", XLO(19,BOFM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5397{"bfctrl-", XLO(19,BOFM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5398{"bfctr+", XLO(19,BOFP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5399{"bfctrl+", XLO(19,BOFP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
14b57c7c 5400{"btctr-", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5401{"btctr+", XLO(19,BOTP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5402{"btctr", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5403{"btctrl-", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5404{"btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5405{"btctrl", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c
AM
5406{"btctr-", XLO(19,BOTM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5407{"btctrl-", XLO(19,BOTM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5408{"btctr+", XLO(19,BOTP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5409{"btctrl+", XLO(19,BOTP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5410
66e85460
AM
5411{"bcctr-", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5412{"bcctr+", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 5413{"bcctr", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460
AM
5414{"bcc", XLLK(19,528,0), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
5415{"bcctrl-", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5416{"bcctrl+", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 5417{"bcctrl", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460 5418{"bccl", XLLK(19,528,1), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
14b57c7c 5419
aae9718e
PB
5420{"bdnztar", XLO(19,BODNZ,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5421{"bdnztarl", XLO(19,BODNZ,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5422{"bdztar", XLO(19,BODZ,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5423{"bdztarl", XLO(19,BODZ,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5424{"btar", XLO(19,BOU,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5425{"btarl", XLO(19,BOU,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5426{"bdnztar-", XLO(19,BODNZM4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5427{"bdnztarl-", XLO(19,BODNZM4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5428{"bdnztar+", XLO(19,BODNZP4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5429{"bdnztarl+", XLO(19,BODNZP4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5430{"bdztar-", XLO(19,BODZM4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5431{"bdztarl-", XLO(19,BODZM4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5432{"bdztar+", XLO(19,BODZP4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5433{"bdztarl+", XLO(19,BODZP4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5434
5435{"bgetar", XLOCB(19,BOF,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5436{"bnltar", XLOCB(19,BOF,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5437{"bgetarl", XLOCB(19,BOF,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5438{"bnltarl", XLOCB(19,BOF,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5439{"bletar", XLOCB(19,BOF,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5440{"bngtar", XLOCB(19,BOF,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5441{"bletarl", XLOCB(19,BOF,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5442{"bngtarl", XLOCB(19,BOF,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5443{"bnetar", XLOCB(19,BOF,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5444{"bnetarl", XLOCB(19,BOF,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5445{"bnstar", XLOCB(19,BOF,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5446{"bnutar", XLOCB(19,BOF,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5447{"bnstarl", XLOCB(19,BOF,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5448{"bnutarl", XLOCB(19,BOF,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5449{"bgetar-", XLOCB(19,BOFM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5450{"bnltar-", XLOCB(19,BOFM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5451{"bgetarl-",XLOCB(19,BOFM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5452{"bnltarl-",XLOCB(19,BOFM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5453{"bletar-", XLOCB(19,BOFM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5454{"bngtar-", XLOCB(19,BOFM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5455{"bletarl-",XLOCB(19,BOFM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5456{"bngtarl-",XLOCB(19,BOFM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5457{"bnetar-", XLOCB(19,BOFM4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5458{"bnetarl-",XLOCB(19,BOFM4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5459{"bnstar-", XLOCB(19,BOFM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5460{"bnutar-", XLOCB(19,BOFM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5461{"bnstarl-",XLOCB(19,BOFM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5462{"bnutarl-",XLOCB(19,BOFM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5463{"bgetar+", XLOCB(19,BOFP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5464{"bnltar+", XLOCB(19,BOFP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5465{"bgetarl+",XLOCB(19,BOFP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5466{"bnltarl+",XLOCB(19,BOFP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5467{"bletar+", XLOCB(19,BOFP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5468{"bngtar+", XLOCB(19,BOFP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5469{"bletarl+",XLOCB(19,BOFP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5470{"bngtarl+",XLOCB(19,BOFP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5471{"bnetar+", XLOCB(19,BOFP4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5472{"bnetarl+",XLOCB(19,BOFP4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5473{"bnstar+", XLOCB(19,BOFP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5474{"bnutar+", XLOCB(19,BOFP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5475{"bnstarl+",XLOCB(19,BOFP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5476{"bnutarl+",XLOCB(19,BOFP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5477{"blttar", XLOCB(19,BOT,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5478{"blttarl", XLOCB(19,BOT,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5479{"bgttar", XLOCB(19,BOT,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5480{"bgttarl", XLOCB(19,BOT,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5481{"beqtar", XLOCB(19,BOT,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5482{"beqtarl", XLOCB(19,BOT,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5483{"bsotar", XLOCB(19,BOT,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5484{"buntar", XLOCB(19,BOT,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5485{"bsotarl", XLOCB(19,BOT,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5486{"buntarl", XLOCB(19,BOT,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5487{"blttar-", XLOCB(19,BOTM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5488{"blttarl-",XLOCB(19,BOTM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5489{"bgttar-", XLOCB(19,BOTM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5490{"bgttarl-",XLOCB(19,BOTM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5491{"beqtar-", XLOCB(19,BOTM4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5492{"beqtarl-",XLOCB(19,BOTM4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5493{"bsotar-", XLOCB(19,BOTM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5494{"buntar-", XLOCB(19,BOTM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5495{"bsotarl-",XLOCB(19,BOTM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5496{"buntarl-",XLOCB(19,BOTM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5497{"blttar+", XLOCB(19,BOTP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5498{"blttarl+",XLOCB(19,BOTP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5499{"bgttar+", XLOCB(19,BOTP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5500{"bgttarl+",XLOCB(19,BOTP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5501{"beqtar+", XLOCB(19,BOTP4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5502{"beqtarl+",XLOCB(19,BOTP4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5503{"bsotar+", XLOCB(19,BOTP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5504{"buntar+", XLOCB(19,BOTP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5505{"bsotarl+",XLOCB(19,BOTP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5506{"buntarl+",XLOCB(19,BOTP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5507
5508{"bdnzftar", XLO(19,BODNZF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5509{"bdnzftarl", XLO(19,BODNZF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5510{"bdzftar", XLO(19,BODZF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5511{"bdzftarl", XLO(19,BODZF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5512
5513{"bftar", XLO(19,BOF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5514{"bftarl", XLO(19,BOF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5515{"bftar-", XLO(19,BOFM4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5516{"bftarl-", XLO(19,BOFM4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5517{"bftar+", XLO(19,BOFP4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5518{"bftarl+", XLO(19,BOFP4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5519
5520{"bdnzttar", XLO(19,BODNZT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5521{"bdnzttarl", XLO(19,BODNZT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5522{"bdzttar", XLO(19,BODZT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5523{"bdzttarl", XLO(19,BODZT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5524
5525{"bttar", XLO(19,BOT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5526{"bttarl", XLO(19,BOT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5527{"bttar-", XLO(19,BOTM4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5528{"bttarl-", XLO(19,BOTM4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5529{"bttar+", XLO(19,BOTP4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5530{"bttarl+", XLO(19,BOTP4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5531
66e85460
AM
5532{"bctar-", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BOM, BI, BH}},
5533{"bctar+", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BOP, BI, BH}},
14b57c7c 5534{"bctar", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
66e85460
AM
5535{"bctarl-", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BOM, BI, BH}},
5536{"bctarl+", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BOP, BI, BH}},
14b57c7c
AM
5537{"bctarl", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
5538
5539{"rlwimi", M(20,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5540{"rlimi", M(20,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5541
5542{"rlwimi.", M(20,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5543{"rlimi.", M(20,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5544
5545{"rotlwi", MME(21,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}},
5546{"clrlwi", MME(21,31,0), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}},
5547{"rlwinm", M(21,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5548{"rlinm", M(21,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5549{"rotlwi.", MME(21,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}},
5550{"clrlwi.", MME(21,31,1), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}},
5551{"rlwinm.", M(21,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5552{"rlinm.", M(21,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5553
5554{"rlmi", M(22,0), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
5555{"rlmi.", M(22,1), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
5556
5557{"rotlw", MME(23,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}},
5558{"rlwnm", M(23,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5559{"rlnm", M(23,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5560{"rotlw.", MME(23,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}},
5561{"rlwnm.", M(23,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5562{"rlnm.", M(23,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5563
5564{"nop", OP(24), 0xffffffff, PPCCOM, PPCVLE, {0}},
5565{"ori", OP(24), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5566{"oril", OP(24), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5567
5568{"oris", OP(25), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5569{"oriu", OP(25), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5570
5571{"xnop", OP(26), 0xffffffff, PPCCOM, PPCVLE, {0}},
5572{"xori", OP(26), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5573{"xoril", OP(26), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5574
5575{"xoris", OP(27), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5576{"xoriu", OP(27), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5577
5578{"andi.", OP(28), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5579{"andil.", OP(28), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5580
5581{"andis.", OP(29), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5582{"andiu.", OP(29), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5583
5584{"rotldi", MD(30,0,0), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}},
5585{"clrldi", MD(30,0,0), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}},
5586{"rldicl", MD(30,0,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5587{"rotldi.", MD(30,0,1), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}},
5588{"clrldi.", MD(30,0,1), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}},
5589{"rldicl.", MD(30,0,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5590
5591{"rldicr", MD(30,1,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
5592{"rldicr.", MD(30,1,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
5593
5594{"rldic", MD(30,2,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5595{"rldic.", MD(30,2,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5596
5597{"rldimi", MD(30,3,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5598{"rldimi.", MD(30,3,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5599
5600{"rotld", MDS(30,8,0), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}},
5601{"rldcl", MDS(30,8,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
5602{"rotld.", MDS(30,8,1), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}},
5603{"rldcl.", MDS(30,8,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
5604
5605{"rldcr", MDS(30,9,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
5606{"rldcr.", MDS(30,9,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
5607
5608{"cmpw", XOPL(31,0,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}},
5609{"cmpd", XOPL(31,0,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}},
a5721ba2 5610{"cmp", X(31,0), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
bdc70b4a 5611{"cmp", X(31,0), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
1cb0a767 5612
14b57c7c
AM
5613{"twlgt", XTO(31,4,TOLGT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5614{"tlgt", XTO(31,4,TOLGT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5615{"twllt", XTO(31,4,TOLLT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5616{"tllt", XTO(31,4,TOLLT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5617{"tweq", XTO(31,4,TOEQ), XTO_MASK, PPCCOM, 0, {RA, RB}},
5618{"teq", XTO(31,4,TOEQ), XTO_MASK, PWRCOM, 0, {RA, RB}},
5619{"twlge", XTO(31,4,TOLGE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5620{"tlge", XTO(31,4,TOLGE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5621{"twlnl", XTO(31,4,TOLNL), XTO_MASK, PPCCOM, 0, {RA, RB}},
5622{"tlnl", XTO(31,4,TOLNL), XTO_MASK, PWRCOM, 0, {RA, RB}},
5623{"twlle", XTO(31,4,TOLLE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5624{"tlle", XTO(31,4,TOLLE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5625{"twlng", XTO(31,4,TOLNG), XTO_MASK, PPCCOM, 0, {RA, RB}},
5626{"tlng", XTO(31,4,TOLNG), XTO_MASK, PWRCOM, 0, {RA, RB}},
5627{"twgt", XTO(31,4,TOGT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5628{"tgt", XTO(31,4,TOGT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5629{"twge", XTO(31,4,TOGE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5630{"tge", XTO(31,4,TOGE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5631{"twnl", XTO(31,4,TONL), XTO_MASK, PPCCOM, 0, {RA, RB}},
5632{"tnl", XTO(31,4,TONL), XTO_MASK, PWRCOM, 0, {RA, RB}},
5633{"twlt", XTO(31,4,TOLT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5634{"tlt", XTO(31,4,TOLT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5635{"twle", XTO(31,4,TOLE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5636{"tle", XTO(31,4,TOLE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5637{"twng", XTO(31,4,TONG), XTO_MASK, PPCCOM, 0, {RA, RB}},
5638{"tng", XTO(31,4,TONG), XTO_MASK, PWRCOM, 0, {RA, RB}},
5639{"twne", XTO(31,4,TONE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5640{"tne", XTO(31,4,TONE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5641{"trap", XTO(31,4,TOU), 0xffffffff, PPCCOM, 0, {0}},
5642{"twu", XTO(31,4,TOU), XTO_MASK, PPCCOM, 0, {RA, RB}},
5643{"tu", XTO(31,4,TOU), XTO_MASK, PWRCOM, 0, {RA, RB}},
5644{"tw", X(31,4), X_MASK, PPCCOM, 0, {TO, RA, RB}},
5645{"t", X(31,4), X_MASK, PWRCOM, 0, {TO, RA, RB}},
5646
5647{"lvsl", X(31,6), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5648{"lvebx", X(31,7), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5649{"lbfcmx", APU(31,7,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
5650
5651{"subfc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5652{"sf", XO(31,8,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5653{"subc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
5654{"subfc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5655{"sf.", XO(31,8,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5656{"subc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
5657
5658{"mulhdu", XO(31,9,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
5659{"mulhdu.", XO(31,9,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
5660
5661{"addc", XO(31,10,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5662{"a", XO(31,10,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5663{"addc.", XO(31,10,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5664{"a.", XO(31,10,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5665
5666{"mulhwu", XO(31,11,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
5667{"mulhwu.", XO(31,11,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
5668
5669{"lxsiwzx", X(31,12), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
5670
5671{"isellt", X(31,15), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
5672
5673{"tlbilxlpid", XTO(31,18,0), XTO_MASK, E500MC|PPCA2, 0, {0}},
5674{"tlbilxpid", XTO(31,18,1), XTO_MASK, E500MC|PPCA2, 0, {0}},
5675{"tlbilxva", XTO(31,18,3), XTO_MASK, E500MC|PPCA2, 0, {RA0, RB}},
5676{"tlbilx", X(31,18), X_MASK, E500MC|PPCA2, 0, {T, RA0, RB}},
5677
5678{"mfcr", XFXM(31,19,0,0), XFXFXM_MASK, COM, 0, {RT, FXM4}},
5679{"mfocrf", XFXM(31,19,0,1), XFXFXM_MASK, COM, 0, {RT, FXM}},
5680
5681{"lwarx", X(31,20), XEH_MASK, PPC, 0, {RT, RA0, RB, EH}},
5682
5683{"ldx", X(31,21), X_MASK, PPC64, 0, {RT, RA0, RB}},
5684
5685{"icbt", X(31,22), X_MASK, BOOKE|PPCE300|PPCA2|PPC476, 0, {CT, RA0, RB}},
5686
5687{"lwzx", X(31,23), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
5688{"lx", X(31,23), X_MASK, PWRCOM, 0, {RT, RA, RB}},
5689
5690{"slw", XRC(31,24,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
5691{"sl", XRC(31,24,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
5692{"slw.", XRC(31,24,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
5693{"sl.", XRC(31,24,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
5694
5695{"cntlzw", XRC(31,26,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
5696{"cntlz", XRC(31,26,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
5697{"cntlzw.", XRC(31,26,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
5698{"cntlz.", XRC(31,26,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
5699
5700{"sld", XRC(31,27,0), X_MASK, PPC64, 0, {RA, RS, RB}},
5701{"sld.", XRC(31,27,1), X_MASK, PPC64, 0, {RA, RS, RB}},
5702
5703{"and", XRC(31,28,0), X_MASK, COM, 0, {RA, RS, RB}},
5704{"and.", XRC(31,28,1), X_MASK, COM, 0, {RA, RS, RB}},
5705
5706{"maskg", XRC(31,29,0), X_MASK, M601, PPCA2, {RA, RS, RB}},
5707{"maskg.", XRC(31,29,1), X_MASK, M601, PPCA2, {RA, RS, RB}},
5708
5709{"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
5710
5711{"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
5712{"wait", X(31,30), XWC_MASK, POWER9, 0, {WC}},
5713
5714{"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
5715
5716{"cmplw", XOPL(31,32,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}},
5717{"cmpld", XOPL(31,32,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}},
a5721ba2 5718{"cmpl", X(31,32), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
bdc70b4a 5719{"cmpl", X(31,32), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
de866fcc 5720
14b57c7c
AM
5721{"lvsr", X(31,38), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5722{"lvehx", X(31,39), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5723{"lhfcmx", APU(31,39,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 5724
ac8f0f72 5725{"mviwsplt", X(31,46), X_MASK, E6500, 0, {VD, RA, RB}},
e67ed0e8 5726
14b57c7c 5727{"iselgt", X(31,47), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
de866fcc 5728
14b57c7c 5729{"lvewx", X(31,71), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
de866fcc 5730
14b57c7c 5731{"addg6s", XO(31,74,0,0), XO_MASK, POWER6, 0, {RT, RA, RB}},
066be9f7 5732
14b57c7c 5733{"lxsiwax", X(31,76), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
c0637f3a 5734
14b57c7c 5735{"iseleq", X(31,79), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
de866fcc 5736
14b57c7c 5737{"isel", XISEL(31,15), XISEL_MASK, PPCISEL|TITAN, 0, {RT, RA0, RB, CRB}},
de866fcc 5738
14b57c7c
AM
5739{"subf", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
5740{"sub", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RB, RA}},
5741{"subf.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
5742{"sub.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RB, RA}},
de866fcc 5743
14b57c7c
AM
5744{"mfvsrd", X(31,51), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
5745{"mffprd", X(31,51), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}},
5746{"mfvrd", X(31,51)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}},
5747{"eratilx", X(31,51), X_MASK, PPCA2, 0, {ERAT_T, RA, RB}},
e0d602ec 5748
14b57c7c 5749{"lbarx", X(31,52), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
066be9f7 5750
14b57c7c 5751{"ldux", X(31,53), X_MASK, PPC64, 0, {RT, RAL, RB}},
43e65147 5752
14b57c7c 5753{"dcbst", X(31,54), XRT_MASK, PPC, 0, {RA0, RB}},
43e65147 5754
14b57c7c
AM
5755{"lwzux", X(31,55), X_MASK, PPCCOM, 0, {RT, RAL, RB}},
5756{"lux", X(31,55), X_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 5757
14b57c7c
AM
5758{"cntlzd", XRC(31,58,0), XRB_MASK, PPC64, 0, {RA, RS}},
5759{"cntlzd.", XRC(31,58,1), XRB_MASK, PPC64, 0, {RA, RS}},
de866fcc 5760
14b57c7c
AM
5761{"andc", XRC(31,60,0), X_MASK, COM, 0, {RA, RS, RB}},
5762{"andc.", XRC(31,60,1), X_MASK, COM, 0, {RA, RS, RB}},
de866fcc 5763
14b57c7c
AM
5764{"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
5765{"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
5766{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}},
43e65147 5767
14b57c7c 5768{"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
19a6653c 5769
14b57c7c
AM
5770{"tdlgt", XTO(31,68,TOLGT), XTO_MASK, PPC64, 0, {RA, RB}},
5771{"tdllt", XTO(31,68,TOLLT), XTO_MASK, PPC64, 0, {RA, RB}},
5772{"tdeq", XTO(31,68,TOEQ), XTO_MASK, PPC64, 0, {RA, RB}},
5773{"tdlge", XTO(31,68,TOLGE), XTO_MASK, PPC64, 0, {RA, RB}},
5774{"tdlnl", XTO(31,68,TOLNL), XTO_MASK, PPC64, 0, {RA, RB}},
5775{"tdlle", XTO(31,68,TOLLE), XTO_MASK, PPC64, 0, {RA, RB}},
5776{"tdlng", XTO(31,68,TOLNG), XTO_MASK, PPC64, 0, {RA, RB}},
5777{"tdgt", XTO(31,68,TOGT), XTO_MASK, PPC64, 0, {RA, RB}},
5778{"tdge", XTO(31,68,TOGE), XTO_MASK, PPC64, 0, {RA, RB}},
5779{"tdnl", XTO(31,68,TONL), XTO_MASK, PPC64, 0, {RA, RB}},
5780{"tdlt", XTO(31,68,TOLT), XTO_MASK, PPC64, 0, {RA, RB}},
5781{"tdle", XTO(31,68,TOLE), XTO_MASK, PPC64, 0, {RA, RB}},
5782{"tdng", XTO(31,68,TONG), XTO_MASK, PPC64, 0, {RA, RB}},
5783{"tdne", XTO(31,68,TONE), XTO_MASK, PPC64, 0, {RA, RB}},
5784{"tdu", XTO(31,68,TOU), XTO_MASK, PPC64, 0, {RA, RB}},
5785{"td", X(31,68), X_MASK, PPC64, 0, {TO, RA, RB}},
de866fcc 5786
14b57c7c
AM
5787{"lwfcmx", APU(31,71,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
5788{"mulhd", XO(31,73,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
5789{"mulhd.", XO(31,73,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 5790
14b57c7c
AM
5791{"mulhw", XO(31,75,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
5792{"mulhw.", XO(31,75,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
de866fcc 5793
62adc510
AM
5794{"dlmzb", XRC(31,78,0), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
5795{"dlmzb.", XRC(31,78,1), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
de866fcc 5796
14b57c7c 5797{"mtsrd", X(31,82), XRB_MASK|(1<<20), PPC64, 0, {SR, RS}},
de866fcc 5798
14b57c7c 5799{"mfmsr", X(31,83), XRARB_MASK, COM, 0, {RT}},
43e65147 5800
14b57c7c 5801{"ldarx", X(31,84), XEH_MASK, PPC64, 0, {RT, RA0, RB, EH}},
de866fcc 5802
c7a8dbf9 5803{"dcbfl", XOPL(31,86,1), XRT_MASK, POWER5, PPC476, {RA0, RB}},
a5721ba2 5804{"dcbf", X(31,86), XLRT_MASK, PPC, 0, {RA0, RB, L2OPT}},
de866fcc 5805
14b57c7c 5806{"lbzx", X(31,87), X_MASK, COM, 0, {RT, RA0, RB}},
43e65147 5807
14b57c7c 5808{"lbepx", X(31,95), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
de866fcc 5809
14b57c7c 5810{"dni", XRC(31,97,1), XRB_MASK, E6500, 0, {DUI, DCTL}},
aea77599 5811
14b57c7c
AM
5812{"lvx", X(31,103), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5813{"lqfcmx", APU(31,103,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 5814
14b57c7c
AM
5815{"neg", XO(31,104,0,0), XORB_MASK, COM, 0, {RT, RA}},
5816{"neg.", XO(31,104,0,1), XORB_MASK, COM, 0, {RT, RA}},
de866fcc 5817
14b57c7c
AM
5818{"mul", XO(31,107,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
5819{"mul.", XO(31,107,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
de866fcc 5820
ac8f0f72 5821{"mvidsplt", X(31,110), X_MASK, E6500, 0, {VD, RA, RB}},
aea77599 5822
14b57c7c 5823{"mtsrdin", X(31,114), XRA_MASK, PPC64, 0, {RS, RB}},
de866fcc 5824
14b57c7c
AM
5825{"mffprwz", X(31,115), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}},
5826{"mfvrwz", X(31,115)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}},
5827{"mfvsrwz", X(31,115), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
c0637f3a 5828
14b57c7c 5829{"lharx", X(31,116), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
066be9f7 5830
14b57c7c 5831{"clf", X(31,118), XTO_MASK, POWER, 0, {RA, RB}},
de866fcc 5832
14b57c7c 5833{"lbzux", X(31,119), X_MASK, COM, 0, {RT, RAL, RB}},
43e65147 5834
14b57c7c 5835{"popcntb", X(31,122), XRB_MASK, POWER5, 0, {RA, RS}},
de866fcc 5836
98553ad3 5837{"not", XRC(31,124,0), X_MASK, COM, 0, {RA, RSB}},
14b57c7c 5838{"nor", XRC(31,124,0), X_MASK, COM, 0, {RA, RS, RB}},
98553ad3 5839{"not.", XRC(31,124,1), X_MASK, COM, 0, {RA, RSB}},
14b57c7c 5840{"nor.", XRC(31,124,1), X_MASK, COM, 0, {RA, RS, RB}},
19a6653c 5841
14b57c7c 5842{"dcbfep", XRT(31,127,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
43e65147 5843
fd486b63 5844{"setb", X(31,128), XRB_MASK|(3<<16), POWER9, 0, {RT, BFA}},
a680de9a 5845
14b57c7c 5846{"wrtee", X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RS}},
43e65147 5847
14b57c7c 5848{"dcbtstls", X(31,134), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
de866fcc 5849
14b57c7c
AM
5850{"stvebx", X(31,135), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
5851{"stbfcmx", APU(31,135,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 5852
14b57c7c
AM
5853{"subfe", XO(31,136,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5854{"sfe", XO(31,136,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5855{"subfe.", XO(31,136,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5856{"sfe.", XO(31,136,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 5857
14b57c7c
AM
5858{"adde", XO(31,138,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5859{"ae", XO(31,138,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5860{"adde.", XO(31,138,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5861{"ae.", XO(31,138,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 5862
14b57c7c 5863{"stxsiwx", X(31,140), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
c0637f3a 5864
14b57c7c
AM
5865{"msgsndp", XRTRA(31,142,0,0), XRTRA_MASK, POWER8, 0, {RB}},
5866{"dcbtstlse", X(31,142), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
de866fcc 5867
14b57c7c
AM
5868{"mtcr", XFXM(31,144,0xff,0), XRARB_MASK, COM, 0, {RS}},
5869{"mtcrf", XFXM(31,144,0,0), XFXFXM_MASK, COM, 0, {FXM, RS}},
5870{"mtocrf", XFXM(31,144,0,1), XFXFXM_MASK, COM, 0, {FXM, RS}},
de866fcc 5871
14b57c7c 5872{"mtmsr", X(31,146), XRLARB_MASK, COM, 0, {RS, A_L}},
de866fcc 5873
14b57c7c 5874{"mtsle", X(31,147), XRTLRARB_MASK, POWER8, 0, {L}},
c0637f3a 5875
14b57c7c
AM
5876{"eratsx", XRC(31,147,0), X_MASK, PPCA2, 0, {RT, RA0, RB}},
5877{"eratsx.", XRC(31,147,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
e0d602ec 5878
14b57c7c 5879{"stdx", X(31,149), X_MASK, PPC64, 0, {RS, RA0, RB}},
43e65147 5880
14b57c7c 5881{"stwcx.", XRC(31,150,1), X_MASK, PPC, 0, {RS, RA0, RB}},
43e65147 5882
14b57c7c
AM
5883{"stwx", X(31,151), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
5884{"stx", X(31,151), X_MASK, PWRCOM, 0, {RS, RA, RB}},
de866fcc 5885
14b57c7c
AM
5886{"slq", XRC(31,152,0), X_MASK, M601, 0, {RA, RS, RB}},
5887{"slq.", XRC(31,152,1), X_MASK, M601, 0, {RA, RS, RB}},
de866fcc 5888
14b57c7c
AM
5889{"sle", XRC(31,153,0), X_MASK, M601, 0, {RA, RS, RB}},
5890{"sle.", XRC(31,153,1), X_MASK, M601, 0, {RA, RS, RB}},
de866fcc 5891
14b57c7c 5892{"prtyw", X(31,154), XRB_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS}},
de866fcc 5893
14b57c7c 5894{"stdepx", X(31,157), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 5895
14b57c7c 5896{"stwepx", X(31,159), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 5897
14b57c7c 5898{"wrteei", X(31,163), XE_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {E}},
43e65147 5899
14b57c7c 5900{"dcbtls", X(31,166), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
de866fcc 5901
14b57c7c
AM
5902{"stvehx", X(31,167), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
5903{"sthfcmx", APU(31,167,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 5904
14b57c7c 5905{"addex", ZRC(31,170,0), Z2_MASK, POWER9, 0, {RT, RA, RB, CY}},
19dfcc89 5906
14b57c7c
AM
5907{"msgclrp", XRTRA(31,174,0,0), XRTRA_MASK, POWER8, 0, {RB}},
5908{"dcbtlse", X(31,174), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
de866fcc 5909
14b57c7c 5910{"mtmsrd", X(31,178), XRLARB_MASK, PPC64, 0, {RS, A_L}},
de866fcc 5911
14b57c7c
AM
5912{"mtvsrd", X(31,179), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
5913{"mtfprd", X(31,179), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
5914{"mtvrd", X(31,179)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
5915{"eratre", X(31,179), X_MASK, PPCA2, 0, {RT, RA, WS}},
e0d602ec 5916
14b57c7c 5917{"stdux", X(31,181), X_MASK, PPC64, 0, {RS, RAS, RB}},
de866fcc 5918
73f07bff 5919{"stqcx.", XRC(31,182,1), X_MASK|Q_MASK, POWER8, 0, {RSQ, RA0, RB}},
14b57c7c 5920{"wchkall", X(31,182), X_MASK, PPCA2, 0, {OBF}},
e0d602ec 5921
14b57c7c
AM
5922{"stwux", X(31,183), X_MASK, PPCCOM, 0, {RS, RAS, RB}},
5923{"stux", X(31,183), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
de866fcc 5924
14b57c7c
AM
5925{"sliq", XRC(31,184,0), X_MASK, M601, 0, {RA, RS, SH}},
5926{"sliq.", XRC(31,184,1), X_MASK, M601, 0, {RA, RS, SH}},
de866fcc 5927
14b57c7c 5928{"prtyd", X(31,186), XRB_MASK, POWER6|PPCA2, 0, {RA, RS}},
252b5132 5929
14b57c7c 5930{"cmprb", X(31,192), XCMP_MASK, POWER9, 0, {BF, L, RA, RB}},
a680de9a 5931
14b57c7c 5932{"icblq.", XRC(31,198,1), X_MASK, E6500, 0, {CT, RA0, RB}},
aea77599 5933
14b57c7c
AM
5934{"stvewx", X(31,199), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
5935{"stwfcmx", APU(31,199,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 5936
14b57c7c
AM
5937{"subfze", XO(31,200,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
5938{"sfze", XO(31,200,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
5939{"subfze.", XO(31,200,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
5940{"sfze.", XO(31,200,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 5941
14b57c7c
AM
5942{"addze", XO(31,202,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
5943{"aze", XO(31,202,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
5944{"addze.", XO(31,202,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
5945{"aze.", XO(31,202,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 5946
14b57c7c 5947{"msgsnd", XRTRA(31,206,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
19a6653c 5948
14b57c7c 5949{"mtsr", X(31,210), XRB_MASK|(1<<20), COM, NON32, {SR, RS}},
418c1742 5950
14b57c7c
AM
5951{"mtfprwa", X(31,211), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
5952{"mtvrwa", X(31,211)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
5953{"mtvsrwa", X(31,211), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
5954{"eratwe", X(31,211), X_MASK, PPCA2, 0, {RS, RA, WS}},
e0d602ec 5955
14b57c7c 5956{"ldawx.", XRC(31,212,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
e0d602ec 5957
14b57c7c 5958{"stdcx.", XRC(31,214,1), X_MASK, PPC64, 0, {RS, RA0, RB}},
43e65147 5959
14b57c7c 5960{"stbx", X(31,215), X_MASK, COM, 0, {RS, RA0, RB}},
252b5132 5961
14b57c7c
AM
5962{"sllq", XRC(31,216,0), X_MASK, M601, 0, {RA, RS, RB}},
5963{"sllq.", XRC(31,216,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 5964
14b57c7c
AM
5965{"sleq", XRC(31,217,0), X_MASK, M601, 0, {RA, RS, RB}},
5966{"sleq.", XRC(31,217,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 5967
14b57c7c 5968{"stbepx", X(31,223), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 5969
14b57c7c 5970{"cmpeqb", X(31,224), XCMPL_MASK, POWER9, 0, {BF, RA, RB}},
a680de9a 5971
14b57c7c 5972{"icblc", X(31,230), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
7d5b217e 5973
14b57c7c
AM
5974{"stvx", X(31,231), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
5975{"stqfcmx", APU(31,231,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
f509565f 5976
14b57c7c
AM
5977{"subfme", XO(31,232,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
5978{"sfme", XO(31,232,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
5979{"subfme.", XO(31,232,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
5980{"sfme.", XO(31,232,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 5981
14b57c7c
AM
5982{"mulld", XO(31,233,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
5983{"mulld.", XO(31,233,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 5984
14b57c7c
AM
5985{"addme", XO(31,234,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
5986{"ame", XO(31,234,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
5987{"addme.", XO(31,234,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
5988{"ame.", XO(31,234,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 5989
14b57c7c
AM
5990{"mullw", XO(31,235,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5991{"muls", XO(31,235,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5992{"mullw.", XO(31,235,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5993{"muls.", XO(31,235,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 5994
14b57c7c
AM
5995{"icblce", X(31,238), X_MASK, PPCCHLK, E500MC|PPCA2, {CT, RA, RB}},
5996{"msgclr", XRTRA(31,238,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
5997{"mtsrin", X(31,242), XRA_MASK, PPC, NON32, {RS, RB}},
bdc70b4a 5998{"mtsri", X(31,242), XRA_MASK, POWER, NON32, {RS, RB}},
418c1742 5999
14b57c7c
AM
6000{"mtfprwz", X(31,243), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
6001{"mtvrwz", X(31,243)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
6002{"mtvsrwz", X(31,243), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
c0637f3a 6003
14b57c7c
AM
6004{"dcbtstt", XRT(31,246,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
6005{"dcbtst", X(31,246), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
6006{"dcbtst", X(31,246), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
6007{"dcbtst", X(31,246), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
4fff86c5 6008
14b57c7c 6009{"stbux", X(31,247), X_MASK, COM, 0, {RS, RAS, RB}},
252b5132 6010
14b57c7c
AM
6011{"slliq", XRC(31,248,0), X_MASK, M601, 0, {RA, RS, SH}},
6012{"slliq.", XRC(31,248,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 6013
14b57c7c 6014{"bpermd", X(31,252), X_MASK, POWER7|PPCA2, 0, {RA, RS, RB}},
066be9f7 6015
14b57c7c 6016{"dcbtstep", XRT(31,255,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
19a6653c 6017
14b57c7c
AM
6018{"mfdcrx", X(31,259), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RS, RA}},
6019{"mfdcrx.", XRC(31,259,1), X_MASK, PPCA2, 0, {RS, RA}},
252b5132 6020
ac8f0f72 6021{"lvexbx", X(31,261), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6022
14b57c7c 6023{"icbt", X(31,262), XRT_MASK, PPC403, 0, {RA, RB}},
1ed8e1e4 6024
ac8f0f72 6025{"lvepxl", X(31,263), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6026
14b57c7c
AM
6027{"ldfcmx", APU(31,263,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6028{"doz", XO(31,264,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
6029{"doz.", XO(31,264,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 6030
14b57c7c 6031{"modud", X(31,265), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 6032
14b57c7c
AM
6033{"add", XO(31,266,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6034{"cax", XO(31,266,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6035{"add.", XO(31,266,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6036{"cax.", XO(31,266,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
418c1742 6037
14b57c7c 6038{"moduw", X(31,267), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 6039
14b57c7c
AM
6040{"lxvx", X(31,268), XX1_MASK|1<<6, PPCVSX3, 0, {XT6, RA0, RB}},
6041{"lxvl", X(31,269), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 6042
14b57c7c 6043{"ehpriv", X(31,270), 0xffffffff, E500MC|PPCA2, 0, {0}},
19a6653c 6044
62adc510 6045{"tlbiel", X(31,274), X_MASK|1<<20,POWER9, 0, {RB, RSO, RIC, PRS, X_R}},
a5721ba2 6046{"tlbiel", X(31,274), XRTLRA_MASK, POWER4, POWER9|PPC476, {RB, LOPT}},
418c1742 6047
14b57c7c 6048{"mfapidi", X(31,275), X_MASK, BOOKE, E500|TITAN, {RT, RA}},
1cb0a767 6049
73f07bff 6050{"lqarx", X(31,276), XEH_MASK|Q_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}},
c0637f3a 6051
14b57c7c
AM
6052{"lscbx", XRC(31,277,0), X_MASK, M601, 0, {RT, RA, RB}},
6053{"lscbx.", XRC(31,277,1), X_MASK, M601, 0, {RT, RA, RB}},
1cb0a767 6054
14b57c7c
AM
6055{"dcbtt", XRT(31,278,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
6056{"dcbt", X(31,278), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
6057{"dcbt", X(31,278), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
6058{"dcbt", X(31,278), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
4fff86c5 6059
14b57c7c 6060{"lhzx", X(31,279), X_MASK, COM, 0, {RT, RA0, RB}},
1cb0a767 6061
14b57c7c 6062{"cdtbcd", X(31,282), XRB_MASK, POWER6, 0, {RA, RS}},
066be9f7 6063
14b57c7c
AM
6064{"eqv", XRC(31,284,0), X_MASK, COM, 0, {RA, RS, RB}},
6065{"eqv.", XRC(31,284,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 6066
14b57c7c 6067{"lhepx", X(31,287), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
1cb0a767 6068
62adc510 6069{"mfdcrux", X(31,291), X_MASK, PPC464|PPC476, 0, {RS, RA}},
1cb0a767 6070
ac8f0f72
AM
6071{"lvexhx", X(31,293), X_MASK, E6500, 0, {VD, RA0, RB}},
6072{"lvepx", X(31,295), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6073
14b57c7c 6074{"lxvll", X(31,301), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 6075
14b57c7c 6076{"mfbhrbe", X(31,302), X_MASK, POWER8, 0, {RT, BHRBE}},
c0637f3a 6077
14b57c7c
AM
6078{"tlbie", X(31,306), X_MASK|1<<20,POWER9, TITAN, {RB, RS, RIC, PRS, X_R}},
6079{"tlbie", X(31,306), XRA_MASK, POWER7, POWER9|TITAN, {RB, RS}},
a5721ba2 6080{"tlbie", X(31,306), XRTLRA_MASK, PPC, E500|POWER7|TITAN, {RB, LOPT}},
14b57c7c 6081{"tlbi", X(31,306), XRT_MASK, POWER, 0, {RA0, RB}},
1cb0a767 6082
14b57c7c 6083{"mfvsrld", X(31,307), XX1RB_MASK, PPCVSX3, 0, {RA, XS6}},
a680de9a 6084
14b57c7c 6085{"eciwx", X(31,310), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
1cb0a767 6086
14b57c7c 6087{"lhzux", X(31,311), X_MASK, COM, 0, {RT, RAL, RB}},
1cb0a767 6088
14b57c7c 6089{"cbcdtd", X(31,314), XRB_MASK, POWER6, 0, {RA, RS}},
066be9f7 6090
14b57c7c
AM
6091{"xor", XRC(31,316,0), X_MASK, COM, 0, {RA, RS, RB}},
6092{"xor.", XRC(31,316,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 6093
14b57c7c 6094{"dcbtep", XRT(31,319,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
1cb0a767 6095
14b57c7c
AM
6096{"mfexisr", XSPR(31,323, 64), XSPR_MASK, PPC403, 0, {RT}},
6097{"mfexier", XSPR(31,323, 66), XSPR_MASK, PPC403, 0, {RT}},
6098{"mfbr0", XSPR(31,323,128), XSPR_MASK, PPC403, 0, {RT}},
6099{"mfbr1", XSPR(31,323,129), XSPR_MASK, PPC403, 0, {RT}},
6100{"mfbr2", XSPR(31,323,130), XSPR_MASK, PPC403, 0, {RT}},
6101{"mfbr3", XSPR(31,323,131), XSPR_MASK, PPC403, 0, {RT}},
6102{"mfbr4", XSPR(31,323,132), XSPR_MASK, PPC403, 0, {RT}},
6103{"mfbr5", XSPR(31,323,133), XSPR_MASK, PPC403, 0, {RT}},
6104{"mfbr6", XSPR(31,323,134), XSPR_MASK, PPC403, 0, {RT}},
6105{"mfbr7", XSPR(31,323,135), XSPR_MASK, PPC403, 0, {RT}},
6106{"mfbear", XSPR(31,323,144), XSPR_MASK, PPC403, 0, {RT}},
6107{"mfbesr", XSPR(31,323,145), XSPR_MASK, PPC403, 0, {RT}},
6108{"mfiocr", XSPR(31,323,160), XSPR_MASK, PPC403, 0, {RT}},
6109{"mfdmacr0", XSPR(31,323,192), XSPR_MASK, PPC403, 0, {RT}},
6110{"mfdmact0", XSPR(31,323,193), XSPR_MASK, PPC403, 0, {RT}},
6111{"mfdmada0", XSPR(31,323,194), XSPR_MASK, PPC403, 0, {RT}},
6112{"mfdmasa0", XSPR(31,323,195), XSPR_MASK, PPC403, 0, {RT}},
6113{"mfdmacc0", XSPR(31,323,196), XSPR_MASK, PPC403, 0, {RT}},
6114{"mfdmacr1", XSPR(31,323,200), XSPR_MASK, PPC403, 0, {RT}},
6115{"mfdmact1", XSPR(31,323,201), XSPR_MASK, PPC403, 0, {RT}},
6116{"mfdmada1", XSPR(31,323,202), XSPR_MASK, PPC403, 0, {RT}},
6117{"mfdmasa1", XSPR(31,323,203), XSPR_MASK, PPC403, 0, {RT}},
6118{"mfdmacc1", XSPR(31,323,204), XSPR_MASK, PPC403, 0, {RT}},
6119{"mfdmacr2", XSPR(31,323,208), XSPR_MASK, PPC403, 0, {RT}},
6120{"mfdmact2", XSPR(31,323,209), XSPR_MASK, PPC403, 0, {RT}},
6121{"mfdmada2", XSPR(31,323,210), XSPR_MASK, PPC403, 0, {RT}},
6122{"mfdmasa2", XSPR(31,323,211), XSPR_MASK, PPC403, 0, {RT}},
6123{"mfdmacc2", XSPR(31,323,212), XSPR_MASK, PPC403, 0, {RT}},
6124{"mfdmacr3", XSPR(31,323,216), XSPR_MASK, PPC403, 0, {RT}},
6125{"mfdmact3", XSPR(31,323,217), XSPR_MASK, PPC403, 0, {RT}},
6126{"mfdmada3", XSPR(31,323,218), XSPR_MASK, PPC403, 0, {RT}},
6127{"mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403, 0, {RT}},
6128{"mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403, 0, {RT}},
6129{"mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, 0, {RT}},
6130{"mfdcr", X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {RT, SPR}},
6131{"mfdcr.", XRC(31,323,1), X_MASK, PPCA2, 0, {RT, SPR}},
1cb0a767 6132
ac8f0f72 6133{"lvexwx", X(31,325), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6134
14b57c7c 6135{"dcread", X(31,326), X_MASK, PPC476|TITAN, 0, {RT, RA0, RB}},
9fe54b1c 6136
14b57c7c
AM
6137{"div", XO(31,331,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
6138{"div.", XO(31,331,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
1cb0a767 6139
14b57c7c 6140{"lxvdsx", X(31,332), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
066be9f7 6141
14b57c7c 6142{"mfpmr", X(31,334), X_MASK, PPCPMR|PPCE300, 0, {RT, PMR}},
c03dc33b 6143{"mftmr", X(31,366), X_MASK, PPCTMR, 0, {RT, TMR}},
1cb0a767 6144
14b57c7c
AM
6145{"slbsync", X(31,338), 0xffffffff, POWER9, 0, {0}},
6146
6147{"mfmq", XSPR(31,339, 0), XSPR_MASK, M601, 0, {RT}},
6148{"mfxer", XSPR(31,339, 1), XSPR_MASK, COM, 0, {RT}},
6149{"mfrtcu", XSPR(31,339, 4), XSPR_MASK, COM, TITAN, {RT}},
6150{"mfrtcl", XSPR(31,339, 5), XSPR_MASK, COM, TITAN, {RT}},
6151{"mfdec", XSPR(31,339, 6), XSPR_MASK, MFDEC1, 0, {RT}},
6152{"mflr", XSPR(31,339, 8), XSPR_MASK, COM, 0, {RT}},
6153{"mfctr", XSPR(31,339, 9), XSPR_MASK, COM, 0, {RT}},
6154{"mfdscr", XSPR(31,339, 17), XSPR_MASK, POWER6, 0, {RT}},
6155{"mftid", XSPR(31,339, 17), XSPR_MASK, POWER, 0, {RT}},
6156{"mfdsisr", XSPR(31,339, 18), XSPR_MASK, COM, TITAN, {RT}},
6157{"mfdar", XSPR(31,339, 19), XSPR_MASK, COM, TITAN, {RT}},
bdc70b4a 6158{"mfdec", XSPR(31,339, 22), XSPR_MASK, MFDEC2, MFDEC1, {RT}},
14b57c7c
AM
6159{"mfsdr0", XSPR(31,339, 24), XSPR_MASK, POWER, 0, {RT}},
6160{"mfsdr1", XSPR(31,339, 25), XSPR_MASK, COM, TITAN, {RT}},
6161{"mfsrr0", XSPR(31,339, 26), XSPR_MASK, COM, 0, {RT}},
6162{"mfsrr1", XSPR(31,339, 27), XSPR_MASK, COM, 0, {RT}},
6163{"mfcfar", XSPR(31,339, 28), XSPR_MASK, POWER6, 0, {RT}},
6164{"mfpid", XSPR(31,339, 48), XSPR_MASK, BOOKE, 0, {RT}},
6165{"mfcsrr0", XSPR(31,339, 58), XSPR_MASK, BOOKE, 0, {RT}},
6166{"mfcsrr1", XSPR(31,339, 59), XSPR_MASK, BOOKE, 0, {RT}},
6167{"mfdear", XSPR(31,339, 61), XSPR_MASK, BOOKE, 0, {RT}},
6168{"mfesr", XSPR(31,339, 62), XSPR_MASK, BOOKE, 0, {RT}},
6169{"mfivpr", XSPR(31,339, 63), XSPR_MASK, BOOKE, 0, {RT}},
6170{"mfctrl", XSPR(31,339,136), XSPR_MASK, POWER4, 0, {RT}},
6171{"mfcmpa", XSPR(31,339,144), XSPR_MASK, PPC860, 0, {RT}},
6172{"mfcmpb", XSPR(31,339,145), XSPR_MASK, PPC860, 0, {RT}},
6173{"mfcmpc", XSPR(31,339,146), XSPR_MASK, PPC860, 0, {RT}},
6174{"mfcmpd", XSPR(31,339,147), XSPR_MASK, PPC860, 0, {RT}},
6175{"mficr", XSPR(31,339,148), XSPR_MASK, PPC860, 0, {RT}},
6176{"mfder", XSPR(31,339,149), XSPR_MASK, PPC860, 0, {RT}},
6177{"mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, 0, {RT}},
6178{"mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, 0, {RT}},
6179{"mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, 0, {RT}},
6180{"mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, 0, {RT}},
6181{"mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, 0, {RT}},
6182{"mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, 0, {RT}},
6183{"mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, 0, {RT}},
6184{"mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, 0, {RT}},
6185{"mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, 0, {RT}},
6186{"mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, 0, {RT}},
6187{"mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, 0, {RT}},
6188{"mfusprg0", XSPR(31,339,256), XSPR_MASK, BOOKE, 0, {RT}},
6189{"mfsprg", XSPR(31,339,256), XSPRG_MASK, PPC, 0, {RT, SPRG}},
6190{"mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6191{"mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6192{"mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6193{"mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6194{"mftbu", XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE, 0, {RT}},
6195{"mftb", X(31,339), X_MASK, POWER4|BOOKE, 0, {RT, TBR}},
6196{"mftbl", XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE, 0, {RT}},
6197{"mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC, 0, {RT}},
6198{"mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC, 0, {RT}},
6199{"mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC, 0, {RT}},
6200{"mfsprg3", XSPR(31,339,275), XSPR_MASK, PPC, 0, {RT}},
6201{"mfasr", XSPR(31,339,280), XSPR_MASK, PPC64, 0, {RT}},
6202{"mfear", XSPR(31,339,282), XSPR_MASK, PPC, TITAN, {RT}},
6203{"mfpir", XSPR(31,339,286), XSPR_MASK, BOOKE, 0, {RT}},
6204{"mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, 0, {RT}},
6205{"mfdbsr", XSPR(31,339,304), XSPR_MASK, BOOKE, 0, {RT}},
6206{"mfdbcr0", XSPR(31,339,308), XSPR_MASK, BOOKE, 0, {RT}},
6207{"mfdbcr1", XSPR(31,339,309), XSPR_MASK, BOOKE, 0, {RT}},
6208{"mfdbcr2", XSPR(31,339,310), XSPR_MASK, BOOKE, 0, {RT}},
6209{"mfiac1", XSPR(31,339,312), XSPR_MASK, BOOKE, 0, {RT}},
6210{"mfiac2", XSPR(31,339,313), XSPR_MASK, BOOKE, 0, {RT}},
6211{"mfiac3", XSPR(31,339,314), XSPR_MASK, BOOKE, 0, {RT}},
6212{"mfiac4", XSPR(31,339,315), XSPR_MASK, BOOKE, 0, {RT}},
6213{"mfdac1", XSPR(31,339,316), XSPR_MASK, BOOKE, 0, {RT}},
6214{"mfdac2", XSPR(31,339,317), XSPR_MASK, BOOKE, 0, {RT}},
6215{"mfdvc1", XSPR(31,339,318), XSPR_MASK, BOOKE, 0, {RT}},
6216{"mfdvc2", XSPR(31,339,319), XSPR_MASK, BOOKE, 0, {RT}},
6217{"mftsr", XSPR(31,339,336), XSPR_MASK, BOOKE, 0, {RT}},
6218{"mftcr", XSPR(31,339,340), XSPR_MASK, BOOKE, 0, {RT}},
6219{"mfivor0", XSPR(31,339,400), XSPR_MASK, BOOKE, 0, {RT}},
6220{"mfivor1", XSPR(31,339,401), XSPR_MASK, BOOKE, 0, {RT}},
6221{"mfivor2", XSPR(31,339,402), XSPR_MASK, BOOKE, 0, {RT}},
6222{"mfivor3", XSPR(31,339,403), XSPR_MASK, BOOKE, 0, {RT}},
6223{"mfivor4", XSPR(31,339,404), XSPR_MASK, BOOKE, 0, {RT}},
6224{"mfivor5", XSPR(31,339,405), XSPR_MASK, BOOKE, 0, {RT}},
6225{"mfivor6", XSPR(31,339,406), XSPR_MASK, BOOKE, 0, {RT}},
6226{"mfivor7", XSPR(31,339,407), XSPR_MASK, BOOKE, 0, {RT}},
6227{"mfivor8", XSPR(31,339,408), XSPR_MASK, BOOKE, 0, {RT}},
6228{"mfivor9", XSPR(31,339,409), XSPR_MASK, BOOKE, 0, {RT}},
6229{"mfivor10", XSPR(31,339,410), XSPR_MASK, BOOKE, 0, {RT}},
6230{"mfivor11", XSPR(31,339,411), XSPR_MASK, BOOKE, 0, {RT}},
6231{"mfivor12", XSPR(31,339,412), XSPR_MASK, BOOKE, 0, {RT}},
6232{"mfivor13", XSPR(31,339,413), XSPR_MASK, BOOKE, 0, {RT}},
6233{"mfivor14", XSPR(31,339,414), XSPR_MASK, BOOKE, 0, {RT}},
6234{"mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, 0, {RT}},
6235{"mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, 0, {RT}},
6236{"mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, 0, {RT}},
6237{"mfbbtar", XSPR(31,339,514), XSPR_MASK, PPCBRLK, 0, {RT}},
4b94dd2d
AM
6238{"mfivor32", XSPR(31,339,528), XSPR_MASK, PPCSPE|E6500, 0, {RT}},
6239{"mfivor33", XSPR(31,339,529), XSPR_MASK, PPCSPE|E6500, 0, {RT}},
14b57c7c
AM
6240{"mfivor34", XSPR(31,339,530), XSPR_MASK, PPCSPE, 0, {RT}},
6241{"mfivor35", XSPR(31,339,531), XSPR_MASK, PPCPMR, 0, {RT}},
4b94dd2d
AM
6242{"mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6243{"mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
14b57c7c
AM
6244{"mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6245{"mfdbatl", XSPR(31,339,537), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6246{"mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860, 0, {RT}},
6247{"mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860, 0, {RT}},
6248{"mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860, 0, {RT}},
6249{"mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860, 0, {RT}},
6250{"mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860, 0, {RT}},
6251{"mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860, 0, {RT}},
6252{"mfmcsrr0", XSPR(31,339,570), XSPR_MASK, PPCRFMCI, 0, {RT}},
6253{"mfmcsrr1", XSPR(31,339,571), XSPR_MASK, PPCRFMCI, 0, {RT}},
6254{"mfmcsr", XSPR(31,339,572), XSPR_MASK, PPCRFMCI, 0, {RT}},
6255{"mfmcar", XSPR(31,339,573), XSPR_MASK, PPCRFMCI, TITAN, {RT}},
6256{"mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, 0, {RT}},
6257{"mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, 0, {RT}},
6258{"mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, 0, {RT}},
bb71536f
AM
6259{"mfupmc1", XSPR(31,339,771), XSPR_MASK, POWER9, 0, {RT}},
6260{"mfpmc1", XSPR(31,339,771), XSPR_MASK, POWER9, 0, {RT}},
6261{"mfupmc2", XSPR(31,339,772), XSPR_MASK, POWER9, 0, {RT}},
6262{"mfpmc2", XSPR(31,339,772), XSPR_MASK, POWER9, 0, {RT}},
6263{"mfupmc3", XSPR(31,339,773), XSPR_MASK, POWER9, 0, {RT}},
6264{"mfpmc3", XSPR(31,339,773), XSPR_MASK, POWER9, 0, {RT}},
6265{"mfupmc4", XSPR(31,339,774), XSPR_MASK, POWER9, 0, {RT}},
6266{"mfpmc4", XSPR(31,339,774), XSPR_MASK, POWER9, 0, {RT}},
6267{"mfupmc5", XSPR(31,339,775), XSPR_MASK, POWER9, 0, {RT}},
6268{"mfpmc5", XSPR(31,339,775), XSPR_MASK, POWER9, 0, {RT}},
6269{"mfupmc6", XSPR(31,339,776), XSPR_MASK, POWER9, 0, {RT}},
6270{"mfpmc6", XSPR(31,339,776), XSPR_MASK, POWER9, 0, {RT}},
14b57c7c
AM
6271{"mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, 0, {RT}},
6272{"mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, 0, {RT}},
6273{"mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, 0, {RT}},
6274{"mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860, 0, {RT}},
6275{"mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860, 0, {RT}},
6276{"mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860, 0, {RT}},
6277{"mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860, 0, {RT}},
6278{"mfmd_ap", XSPR(31,339,794), XSPR_MASK, PPC860, 0, {RT}},
6279{"mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860, 0, {RT}},
6280{"mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860, 0, {RT}},
6281{"mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, 0, {RT}},
6282{"mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, 0, {RT}},
6283{"mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, 0, {RT}},
6284{"mfmi_dbcam", XSPR(31,339,816), XSPR_MASK, PPC860, 0, {RT}},
6285{"mfmi_dbram0", XSPR(31,339,817), XSPR_MASK, PPC860, 0, {RT}},
6286{"mfmi_dbram1", XSPR(31,339,818), XSPR_MASK, PPC860, 0, {RT}},
6287{"mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, 0, {RT}},
6288{"mfmd_dbram0", XSPR(31,339,825), XSPR_MASK, PPC860, 0, {RT}},
6289{"mfmd_dbram1", XSPR(31,339,826), XSPR_MASK, PPC860, 0, {RT}},
6290{"mfivndx", XSPR(31,339,880), XSPR_MASK, TITAN, 0, {RT}},
6291{"mfdvndx", XSPR(31,339,881), XSPR_MASK, TITAN, 0, {RT}},
6292{"mfivlim", XSPR(31,339,882), XSPR_MASK, TITAN, 0, {RT}},
6293{"mfdvlim", XSPR(31,339,883), XSPR_MASK, TITAN, 0, {RT}},
6294{"mfclcsr", XSPR(31,339,884), XSPR_MASK, TITAN, 0, {RT}},
6295{"mfccr1", XSPR(31,339,888), XSPR_MASK, TITAN, 0, {RT}},
6296{"mfppr", XSPR(31,339,896), XSPR_MASK, POWER7, 0, {RT}},
6297{"mfppr32", XSPR(31,339,898), XSPR_MASK, POWER7, 0, {RT}},
fa758a70
AC
6298{"mfgqr", XSPR(31,339,912), XSPRGQR_MASK, PPCPS, 0, {RT, SPRGQR}},
6299{"mfhid2", XSPR(31,339,920), XSPR_MASK, GEKKO, 0, {RT}},
6300{"mfwpar", XSPR(31,339,921), XSPR_MASK, GEKKO, 0, {RT}},
6301{"mfdmau", XSPR(31,339,922), XSPR_MASK, GEKKO, 0, {RT}},
6302{"mfdmal", XSPR(31,339,923), XSPR_MASK, GEKKO, 0, {RT}},
14b57c7c
AM
6303{"mfrstcfg", XSPR(31,339,923), XSPR_MASK, TITAN, 0, {RT}},
6304{"mfdcdbtrl", XSPR(31,339,924), XSPR_MASK, TITAN, 0, {RT}},
6305{"mfdcdbtrh", XSPR(31,339,925), XSPR_MASK, TITAN, 0, {RT}},
6306{"mficdbtr", XSPR(31,339,927), XSPR_MASK, TITAN, 0, {RT}},
6307{"mfummcr0", XSPR(31,339,936), XSPR_MASK, PPC750, 0, {RT}},
6308{"mfupmc1", XSPR(31,339,937), XSPR_MASK, PPC750, 0, {RT}},
6309{"mfupmc2", XSPR(31,339,938), XSPR_MASK, PPC750, 0, {RT}},
6310{"mfusia", XSPR(31,339,939), XSPR_MASK, PPC750, 0, {RT}},
6311{"mfummcr1", XSPR(31,339,940), XSPR_MASK, PPC750, 0, {RT}},
6312{"mfupmc3", XSPR(31,339,941), XSPR_MASK, PPC750, 0, {RT}},
6313{"mfupmc4", XSPR(31,339,942), XSPR_MASK, PPC750, 0, {RT}},
6314{"mfzpr", XSPR(31,339,944), XSPR_MASK, PPC403, 0, {RT}},
6315{"mfpid", XSPR(31,339,945), XSPR_MASK, PPC403, 0, {RT}},
6316{"mfmmucr", XSPR(31,339,946), XSPR_MASK, TITAN, 0, {RT}},
6317{"mfccr0", XSPR(31,339,947), XSPR_MASK, PPC405|TITAN, 0, {RT}},
6318{"mfiac3", XSPR(31,339,948), XSPR_MASK, PPC405, 0, {RT}},
6319{"mfiac4", XSPR(31,339,949), XSPR_MASK, PPC405, 0, {RT}},
6320{"mfdvc1", XSPR(31,339,950), XSPR_MASK, PPC405, 0, {RT}},
6321{"mfdvc2", XSPR(31,339,951), XSPR_MASK, PPC405, 0, {RT}},
6322{"mfmmcr0", XSPR(31,339,952), XSPR_MASK, PPC750, 0, {RT}},
6323{"mfpmc1", XSPR(31,339,953), XSPR_MASK, PPC750, 0, {RT}},
6324{"mfsgr", XSPR(31,339,953), XSPR_MASK, PPC403, 0, {RT}},
6325{"mfdcwr", XSPR(31,339,954), XSPR_MASK, PPC403, 0, {RT}},
6326{"mfpmc2", XSPR(31,339,954), XSPR_MASK, PPC750, 0, {RT}},
6327{"mfsia", XSPR(31,339,955), XSPR_MASK, PPC750, 0, {RT}},
6328{"mfsler", XSPR(31,339,955), XSPR_MASK, PPC405, 0, {RT}},
6329{"mfmmcr1", XSPR(31,339,956), XSPR_MASK, PPC750, 0, {RT}},
6330{"mfsu0r", XSPR(31,339,956), XSPR_MASK, PPC405, 0, {RT}},
6331{"mfdbcr1", XSPR(31,339,957), XSPR_MASK, PPC405, 0, {RT}},
6332{"mfpmc3", XSPR(31,339,957), XSPR_MASK, PPC750, 0, {RT}},
6333{"mfpmc4", XSPR(31,339,958), XSPR_MASK, PPC750, 0, {RT}},
6334{"mficdbdr", XSPR(31,339,979), XSPR_MASK, PPC403|TITAN, 0, {RT}},
6335{"mfesr", XSPR(31,339,980), XSPR_MASK, PPC403, 0, {RT}},
6336{"mfdear", XSPR(31,339,981), XSPR_MASK, PPC403, 0, {RT}},
6337{"mfevpr", XSPR(31,339,982), XSPR_MASK, PPC403, 0, {RT}},
6338{"mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403, 0, {RT}},
6339{"mftsr", XSPR(31,339,984), XSPR_MASK, PPC403, 0, {RT}},
6340{"mftcr", XSPR(31,339,986), XSPR_MASK, PPC403, 0, {RT}},
6341{"mfpit", XSPR(31,339,987), XSPR_MASK, PPC403, 0, {RT}},
6342{"mftbhi", XSPR(31,339,988), XSPR_MASK, PPC403, 0, {RT}},
6343{"mftblo", XSPR(31,339,989), XSPR_MASK, PPC403, 0, {RT}},
6344{"mfsrr2", XSPR(31,339,990), XSPR_MASK, PPC403, 0, {RT}},
6345{"mfsrr3", XSPR(31,339,991), XSPR_MASK, PPC403, 0, {RT}},
6346{"mfdbsr", XSPR(31,339,1008), XSPR_MASK, PPC403, 0, {RT}},
fa758a70
AC
6347{"mfhid0", XSPR(31,339,1008), XSPR_MASK, GEKKO, 0, {RT}},
6348{"mfhid1", XSPR(31,339,1009), XSPR_MASK, GEKKO, 0, {RT}},
14b57c7c 6349{"mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405, 0, {RT}},
fa758a70
AC
6350{"mfiabr", XSPR(31,339,1010), XSPR_MASK, GEKKO, 0, {RT}},
6351{"mfhid4", XSPR(31,339,1011), XSPR_MASK, BROADWAY, 0, {RT}},
14b57c7c
AM
6352{"mfdbdr", XSPR(31,339,1011), XSPR_MASK, TITAN, 0, {RS}},
6353{"mfiac1", XSPR(31,339,1012), XSPR_MASK, PPC403, 0, {RT}},
6354{"mfiac2", XSPR(31,339,1013), XSPR_MASK, PPC403, 0, {RT}},
fa758a70 6355{"mfdabr", XSPR(31,339,1013), XSPR_MASK, PPC750, 0, {RT}},
14b57c7c
AM
6356{"mfdac1", XSPR(31,339,1014), XSPR_MASK, PPC403, 0, {RT}},
6357{"mfdac2", XSPR(31,339,1015), XSPR_MASK, PPC403, 0, {RT}},
6358{"mfl2cr", XSPR(31,339,1017), XSPR_MASK, PPC750, 0, {RT}},
6359{"mfdccr", XSPR(31,339,1018), XSPR_MASK, PPC403, 0, {RT}},
6360{"mficcr", XSPR(31,339,1019), XSPR_MASK, PPC403, 0, {RT}},
6361{"mfictc", XSPR(31,339,1019), XSPR_MASK, PPC750, 0, {RT}},
6362{"mfpbl1", XSPR(31,339,1020), XSPR_MASK, PPC403, 0, {RT}},
6363{"mfthrm1", XSPR(31,339,1020), XSPR_MASK, PPC750, 0, {RT}},
6364{"mfpbu1", XSPR(31,339,1021), XSPR_MASK, PPC403, 0, {RT}},
6365{"mfthrm2", XSPR(31,339,1021), XSPR_MASK, PPC750, 0, {RT}},
6366{"mfpbl2", XSPR(31,339,1022), XSPR_MASK, PPC403, 0, {RT}},
6367{"mfthrm3", XSPR(31,339,1022), XSPR_MASK, PPC750, 0, {RT}},
6368{"mfpbu2", XSPR(31,339,1023), XSPR_MASK, PPC403, 0, {RT}},
6369{"mfspr", X(31,339), X_MASK, COM, 0, {RT, SPR}},
6370
6371{"lwax", X(31,341), X_MASK, PPC64, 0, {RT, RA0, RB}},
6372
6373{"dst", XDSS(31,342,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
6374
6375{"lhax", X(31,343), X_MASK, COM, 0, {RT, RA0, RB}},
6376
6377{"lvxl", X(31,359), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
6378
6379{"abs", XO(31,360,0,0), XORB_MASK, M601, 0, {RT, RA}},
6380{"abs.", XO(31,360,0,1), XORB_MASK, M601, 0, {RT, RA}},
6381
6382{"divs", XO(31,363,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
6383{"divs.", XO(31,363,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
6384
6385{"lxvwsx", X(31,364), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
6386
6387{"tlbia", X(31,370), 0xffffffff, PPC, E500|TITAN, {0}},
1cb0a767 6388
db76a700 6389{"mftbu", XSPR(31,371,269), XSPR_MASK, PPC, NO371|POWER4, {RT}},
14b57c7c 6390{"mftb", X(31,371), X_MASK, PPC, NO371|POWER4, {RT, TBR}},
db76a700 6391{"mftbl", XSPR(31,371,268), XSPR_MASK, PPC, NO371|POWER4, {RT}},
1cb0a767 6392
14b57c7c 6393{"lwaux", X(31,373), X_MASK, PPC64, 0, {RT, RAL, RB}},
1cb0a767 6394
14b57c7c 6395{"dstst", XDSS(31,374,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
1cb0a767 6396
14b57c7c 6397{"lhaux", X(31,375), X_MASK, COM, 0, {RT, RAL, RB}},
1cb0a767 6398
14b57c7c 6399{"popcntw", X(31,378), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
066be9f7 6400
14b57c7c
AM
6401{"mtdcrx", X(31,387), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RA, RS}},
6402{"mtdcrx.", XRC(31,387,1), X_MASK, PPCA2, 0, {RA, RS}},
1cb0a767 6403
ac8f0f72 6404{"stvexbx", X(31,389), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 6405
14b57c7c
AM
6406{"dcblc", X(31,390), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
6407{"stdfcmx", APU(31,391,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
1cb0a767 6408
14b57c7c
AM
6409{"divdeu", XO(31,393,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6410{"divdeu.", XO(31,393,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6411{"divweu", XO(31,395,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6412{"divweu.", XO(31,395,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 6413
14b57c7c
AM
6414{"stxvx", X(31,396), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
6415{"stxvl", X(31,397), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 6416
14b57c7c 6417{"dcblce", X(31,398), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
1cb0a767 6418
14b57c7c 6419{"slbmte", X(31,402), XRA_MASK, PPC64, 0, {RS, RB}},
1cb0a767 6420
14b57c7c 6421{"mtvsrws", X(31,403), XX1RB_MASK, PPCVSX3, 0, {XT6, RA}},
a680de9a 6422
14b57c7c 6423{"pbt.", XRC(31,404,1), X_MASK, POWER8, 0, {RS, RA0, RB}},
c0637f3a 6424
14b57c7c
AM
6425{"icswx", XRC(31,406,0), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
6426{"icswx.", XRC(31,406,1), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
e0d602ec 6427
14b57c7c 6428{"sthx", X(31,407), X_MASK, COM, 0, {RS, RA0, RB}},
1cb0a767 6429
14b57c7c
AM
6430{"orc", XRC(31,412,0), X_MASK, COM, 0, {RA, RS, RB}},
6431{"orc.", XRC(31,412,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 6432
14b57c7c 6433{"sthepx", X(31,415), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
1cb0a767 6434
62adc510 6435{"mtdcrux", X(31,419), X_MASK, PPC464|PPC476, 0, {RA, RS}},
1cb0a767 6436
ac8f0f72 6437{"stvexhx", X(31,421), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 6438
14b57c7c 6439{"dcblq.", XRC(31,422,1), X_MASK, E6500, 0, {CT, RA0, RB}},
aea77599 6440
14b57c7c
AM
6441{"divde", XO(31,425,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6442{"divde.", XO(31,425,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6443{"divwe", XO(31,427,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6444{"divwe.", XO(31,427,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 6445
14b57c7c 6446{"stxvll", X(31,429), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 6447
14b57c7c 6448{"clrbhrb", X(31,430), 0xffffffff, POWER8, 0, {0}},
c0637f3a 6449
14b57c7c 6450{"slbie", X(31,434), XRTRA_MASK, PPC64, 0, {RB}},
1cb0a767 6451
14b57c7c 6452{"mtvsrdd", X(31,435), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 6453
14b57c7c 6454{"ecowx", X(31,438), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
1cb0a767 6455
14b57c7c 6456{"sthux", X(31,439), X_MASK, COM, 0, {RS, RAS, RB}},
1cb0a767 6457
14b57c7c 6458{"mdors", 0x7f9ce378, 0xffffffff, E500MC, 0, {0}},
1cb0a767 6459
14b57c7c 6460{"miso", 0x7f5ad378, 0xffffffff, E6500, 0, {0}},
aea77599 6461
9f6a6cc0 6462/* The "yield", "mdoio" and "mdoom" instructions are extended mnemonics for
14b57c7c
AM
6463 "or rX,rX,rX", with rX being r27, r29 and r30 respectively. */
6464{"yield", 0x7f7bdb78, 0xffffffff, POWER7, 0, {0}},
6465{"mdoio", 0x7fbdeb78, 0xffffffff, POWER7, 0, {0}},
6466{"mdoom", 0x7fdef378, 0xffffffff, POWER7, 0, {0}},
98553ad3 6467{"mr", XRC(31,444,0), X_MASK, COM, 0, {RA, RSB}},
14b57c7c 6468{"or", XRC(31,444,0), X_MASK, COM, 0, {RA, RS, RB}},
98553ad3 6469{"mr.", XRC(31,444,1), X_MASK, COM, 0, {RA, RSB}},
14b57c7c
AM
6470{"or.", XRC(31,444,1), X_MASK, COM, 0, {RA, RS, RB}},
6471
6472{"mtexisr", XSPR(31,451, 64), XSPR_MASK, PPC403, 0, {RS}},
6473{"mtexier", XSPR(31,451, 66), XSPR_MASK, PPC403, 0, {RS}},
6474{"mtbr0", XSPR(31,451,128), XSPR_MASK, PPC403, 0, {RS}},
6475{"mtbr1", XSPR(31,451,129), XSPR_MASK, PPC403, 0, {RS}},
6476{"mtbr2", XSPR(31,451,130), XSPR_MASK, PPC403, 0, {RS}},
6477{"mtbr3", XSPR(31,451,131), XSPR_MASK, PPC403, 0, {RS}},
6478{"mtbr4", XSPR(31,451,132), XSPR_MASK, PPC403, 0, {RS}},
6479{"mtbr5", XSPR(31,451,133), XSPR_MASK, PPC403, 0, {RS}},
6480{"mtbr6", XSPR(31,451,134), XSPR_MASK, PPC403, 0, {RS}},
6481{"mtbr7", XSPR(31,451,135), XSPR_MASK, PPC403, 0, {RS}},
6482{"mtbear", XSPR(31,451,144), XSPR_MASK, PPC403, 0, {RS}},
6483{"mtbesr", XSPR(31,451,145), XSPR_MASK, PPC403, 0, {RS}},
6484{"mtiocr", XSPR(31,451,160), XSPR_MASK, PPC403, 0, {RS}},
6485{"mtdmacr0", XSPR(31,451,192), XSPR_MASK, PPC403, 0, {RS}},
6486{"mtdmact0", XSPR(31,451,193), XSPR_MASK, PPC403, 0, {RS}},
6487{"mtdmada0", XSPR(31,451,194), XSPR_MASK, PPC403, 0, {RS}},
6488{"mtdmasa0", XSPR(31,451,195), XSPR_MASK, PPC403, 0, {RS}},
6489{"mtdmacc0", XSPR(31,451,196), XSPR_MASK, PPC403, 0, {RS}},
6490{"mtdmacr1", XSPR(31,451,200), XSPR_MASK, PPC403, 0, {RS}},
6491{"mtdmact1", XSPR(31,451,201), XSPR_MASK, PPC403, 0, {RS}},
6492{"mtdmada1", XSPR(31,451,202), XSPR_MASK, PPC403, 0, {RS}},
6493{"mtdmasa1", XSPR(31,451,203), XSPR_MASK, PPC403, 0, {RS}},
6494{"mtdmacc1", XSPR(31,451,204), XSPR_MASK, PPC403, 0, {RS}},
6495{"mtdmacr2", XSPR(31,451,208), XSPR_MASK, PPC403, 0, {RS}},
6496{"mtdmact2", XSPR(31,451,209), XSPR_MASK, PPC403, 0, {RS}},
6497{"mtdmada2", XSPR(31,451,210), XSPR_MASK, PPC403, 0, {RS}},
6498{"mtdmasa2", XSPR(31,451,211), XSPR_MASK, PPC403, 0, {RS}},
6499{"mtdmacc2", XSPR(31,451,212), XSPR_MASK, PPC403, 0, {RS}},
6500{"mtdmacr3", XSPR(31,451,216), XSPR_MASK, PPC403, 0, {RS}},
6501{"mtdmact3", XSPR(31,451,217), XSPR_MASK, PPC403, 0, {RS}},
6502{"mtdmada3", XSPR(31,451,218), XSPR_MASK, PPC403, 0, {RS}},
6503{"mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403, 0, {RS}},
6504{"mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403, 0, {RS}},
6505{"mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, 0, {RS}},
6506{"mtdcr", X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {SPR, RS}},
6507{"mtdcr.", XRC(31,451,1), X_MASK, PPCA2, 0, {SPR, RS}},
6508
ac8f0f72 6509{"stvexwx", X(31,453), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c 6510
62adc510 6511{"dccci", X(31,454), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
14b57c7c
AM
6512{"dci", X(31,454), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
6513
6514{"divdu", XO(31,457,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6515{"divdu.", XO(31,457,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
6516
6517{"divwu", XO(31,459,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
6518{"divwu.", XO(31,459,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
6519
6520{"mtpmr", X(31,462), X_MASK, PPCPMR|PPCE300, 0, {PMR, RS}},
c03dc33b 6521{"mttmr", X(31,494), X_MASK, PPCTMR, 0, {TMR, RS}},
14b57c7c
AM
6522
6523{"slbieg", X(31,466), XRA_MASK, POWER9, 0, {RS, RB}},
6524
6525{"mtmq", XSPR(31,467, 0), XSPR_MASK, M601, 0, {RS}},
6526{"mtxer", XSPR(31,467, 1), XSPR_MASK, COM, 0, {RS}},
6527{"mtlr", XSPR(31,467, 8), XSPR_MASK, COM, 0, {RS}},
6528{"mtctr", XSPR(31,467, 9), XSPR_MASK, COM, 0, {RS}},
6529{"mtdscr", XSPR(31,467, 17), XSPR_MASK, POWER6, 0, {RS}},
6530{"mttid", XSPR(31,467, 17), XSPR_MASK, POWER, 0, {RS}},
6531{"mtdsisr", XSPR(31,467, 18), XSPR_MASK, COM, TITAN, {RS}},
6532{"mtdar", XSPR(31,467, 19), XSPR_MASK, COM, TITAN, {RS}},
6533{"mtrtcu", XSPR(31,467, 20), XSPR_MASK, COM, TITAN, {RS}},
6534{"mtrtcl", XSPR(31,467, 21), XSPR_MASK, COM, TITAN, {RS}},
6535{"mtdec", XSPR(31,467, 22), XSPR_MASK, COM, 0, {RS}},
6536{"mtsdr0", XSPR(31,467, 24), XSPR_MASK, POWER, 0, {RS}},
6537{"mtsdr1", XSPR(31,467, 25), XSPR_MASK, COM, TITAN, {RS}},
6538{"mtsrr0", XSPR(31,467, 26), XSPR_MASK, COM, 0, {RS}},
6539{"mtsrr1", XSPR(31,467, 27), XSPR_MASK, COM, 0, {RS}},
6540{"mtcfar", XSPR(31,467, 28), XSPR_MASK, POWER6, 0, {RS}},
6541{"mtpid", XSPR(31,467, 48), XSPR_MASK, BOOKE, 0, {RS}},
6542{"mtdecar", XSPR(31,467, 54), XSPR_MASK, BOOKE, 0, {RS}},
6543{"mtcsrr0", XSPR(31,467, 58), XSPR_MASK, BOOKE, 0, {RS}},
6544{"mtcsrr1", XSPR(31,467, 59), XSPR_MASK, BOOKE, 0, {RS}},
6545{"mtdear", XSPR(31,467, 61), XSPR_MASK, BOOKE, 0, {RS}},
6546{"mtesr", XSPR(31,467, 62), XSPR_MASK, BOOKE, 0, {RS}},
6547{"mtivpr", XSPR(31,467, 63), XSPR_MASK, BOOKE, 0, {RS}},
6548{"mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, 0, {RS}},
6549{"mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, 0, {RS}},
6550{"mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, 0, {RS}},
6551{"mtcmpd", XSPR(31,467,147), XSPR_MASK, PPC860, 0, {RS}},
6552{"mticr", XSPR(31,467,148), XSPR_MASK, PPC860, 0, {RS}},
6553{"mtder", XSPR(31,467,149), XSPR_MASK, PPC860, 0, {RS}},
6554{"mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860, 0, {RS}},
6555{"mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, 0, {RS}},
6556{"mtctrl", XSPR(31,467,152), XSPR_MASK, POWER4, 0, {RS}},
6557{"mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, 0, {RS}},
6558{"mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, 0, {RS}},
6559{"mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, 0, {RS}},
6560{"mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, 0, {RS}},
6561{"mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, 0, {RS}},
6562{"mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, 0, {RS}},
6563{"mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, 0, {RS}},
6564{"mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, 0, {RS}},
6565{"mtvrsave", XSPR(31,467,256), XSPR_MASK, PPCVEC, 0, {RS}},
6566{"mtusprg0", XSPR(31,467,256), XSPR_MASK, BOOKE, 0, {RS}},
6567{"mtsprg", XSPR(31,467,256), XSPRG_MASK, PPC, 0, {SPRG, RS}},
6568{"mtsprg0", XSPR(31,467,272), XSPR_MASK, PPC, 0, {RS}},
6569{"mtsprg1", XSPR(31,467,273), XSPR_MASK, PPC, 0, {RS}},
6570{"mtsprg2", XSPR(31,467,274), XSPR_MASK, PPC, 0, {RS}},
6571{"mtsprg3", XSPR(31,467,275), XSPR_MASK, PPC, 0, {RS}},
6572{"mtsprg4", XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6573{"mtsprg5", XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6574{"mtsprg6", XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6575{"mtsprg7", XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6576{"mtasr", XSPR(31,467,280), XSPR_MASK, PPC64, 0, {RS}},
6577{"mtear", XSPR(31,467,282), XSPR_MASK, PPC, TITAN, {RS}},
6578{"mttbl", XSPR(31,467,284), XSPR_MASK, PPC, 0, {RS}},
6579{"mttbu", XSPR(31,467,285), XSPR_MASK, PPC, 0, {RS}},
6580{"mtdbsr", XSPR(31,467,304), XSPR_MASK, BOOKE, 0, {RS}},
6581{"mtdbcr0", XSPR(31,467,308), XSPR_MASK, BOOKE, 0, {RS}},
6582{"mtdbcr1", XSPR(31,467,309), XSPR_MASK, BOOKE, 0, {RS}},
6583{"mtdbcr2", XSPR(31,467,310), XSPR_MASK, BOOKE, 0, {RS}},
6584{"mtiac1", XSPR(31,467,312), XSPR_MASK, BOOKE, 0, {RS}},
6585{"mtiac2", XSPR(31,467,313), XSPR_MASK, BOOKE, 0, {RS}},
6586{"mtiac3", XSPR(31,467,314), XSPR_MASK, BOOKE, 0, {RS}},
6587{"mtiac4", XSPR(31,467,315), XSPR_MASK, BOOKE, 0, {RS}},
6588{"mtdac1", XSPR(31,467,316), XSPR_MASK, BOOKE, 0, {RS}},
6589{"mtdac2", XSPR(31,467,317), XSPR_MASK, BOOKE, 0, {RS}},
6590{"mtdvc1", XSPR(31,467,318), XSPR_MASK, BOOKE, 0, {RS}},
6591{"mtdvc2", XSPR(31,467,319), XSPR_MASK, BOOKE, 0, {RS}},
6592{"mttsr", XSPR(31,467,336), XSPR_MASK, BOOKE, 0, {RS}},
6593{"mttcr", XSPR(31,467,340), XSPR_MASK, BOOKE, 0, {RS}},
6594{"mtivor0", XSPR(31,467,400), XSPR_MASK, BOOKE, 0, {RS}},
6595{"mtivor1", XSPR(31,467,401), XSPR_MASK, BOOKE, 0, {RS}},
6596{"mtivor2", XSPR(31,467,402), XSPR_MASK, BOOKE, 0, {RS}},
6597{"mtivor3", XSPR(31,467,403), XSPR_MASK, BOOKE, 0, {RS}},
6598{"mtivor4", XSPR(31,467,404), XSPR_MASK, BOOKE, 0, {RS}},
6599{"mtivor5", XSPR(31,467,405), XSPR_MASK, BOOKE, 0, {RS}},
6600{"mtivor6", XSPR(31,467,406), XSPR_MASK, BOOKE, 0, {RS}},
6601{"mtivor7", XSPR(31,467,407), XSPR_MASK, BOOKE, 0, {RS}},
6602{"mtivor8", XSPR(31,467,408), XSPR_MASK, BOOKE, 0, {RS}},
6603{"mtivor9", XSPR(31,467,409), XSPR_MASK, BOOKE, 0, {RS}},
6604{"mtivor10", XSPR(31,467,410), XSPR_MASK, BOOKE, 0, {RS}},
6605{"mtivor11", XSPR(31,467,411), XSPR_MASK, BOOKE, 0, {RS}},
6606{"mtivor12", XSPR(31,467,412), XSPR_MASK, BOOKE, 0, {RS}},
6607{"mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, 0, {RS}},
6608{"mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, 0, {RS}},
6609{"mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, 0, {RS}},
6610{"mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, 0, {RS}},
6611{"mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, 0, {RS}},
6612{"mtbbtar", XSPR(31,467,514), XSPR_MASK, PPCBRLK, 0, {RS}},
4b94dd2d
AM
6613{"mtivor32", XSPR(31,467,528), XSPR_MASK, PPCSPE|E6500, 0, {RS}},
6614{"mtivor33", XSPR(31,467,529), XSPR_MASK, PPCSPE|E6500, 0, {RS}},
14b57c7c
AM
6615{"mtivor34", XSPR(31,467,530), XSPR_MASK, PPCSPE, 0, {RS}},
6616{"mtivor35", XSPR(31,467,531), XSPR_MASK, PPCPMR, 0, {RS}},
4b94dd2d
AM
6617{"mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
6618{"mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
14b57c7c
AM
6619{"mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
6620{"mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
6621{"mtmcsrr0", XSPR(31,467,570), XSPR_MASK, PPCRFMCI, 0, {RS}},
6622{"mtmcsrr1", XSPR(31,467,571), XSPR_MASK, PPCRFMCI, 0, {RS}},
6623{"mtmcsr", XSPR(31,467,572), XSPR_MASK, PPCRFMCI, 0, {RS}},
bb71536f
AM
6624{"mtupmc1", XSPR(31,467,771), XSPR_MASK, POWER9, 0, {RS}},
6625{"mtupmc2", XSPR(31,467,772), XSPR_MASK, POWER9, 0, {RS}},
6626{"mtupmc3", XSPR(31,467,773), XSPR_MASK, POWER9, 0, {RS}},
6627{"mtupmc4", XSPR(31,467,774), XSPR_MASK, POWER9, 0, {RS}},
6628{"mtupmc5", XSPR(31,467,775), XSPR_MASK, POWER9, 0, {RS}},
6629{"mtupmc6", XSPR(31,467,776), XSPR_MASK, POWER9, 0, {RS}},
14b57c7c
AM
6630{"mtivndx", XSPR(31,467,880), XSPR_MASK, TITAN, 0, {RS}},
6631{"mtdvndx", XSPR(31,467,881), XSPR_MASK, TITAN, 0, {RS}},
6632{"mtivlim", XSPR(31,467,882), XSPR_MASK, TITAN, 0, {RS}},
6633{"mtdvlim", XSPR(31,467,883), XSPR_MASK, TITAN, 0, {RS}},
6634{"mtclcsr", XSPR(31,467,884), XSPR_MASK, TITAN, 0, {RS}},
6635{"mtccr1", XSPR(31,467,888), XSPR_MASK, TITAN, 0, {RS}},
6636{"mtppr", XSPR(31,467,896), XSPR_MASK, POWER7, 0, {RS}},
6637{"mtppr32", XSPR(31,467,898), XSPR_MASK, POWER7, 0, {RS}},
fa758a70
AC
6638{"mtgqr", XSPR(31,467,912), XSPRGQR_MASK, PPCPS, 0, {SPRGQR, RS}},
6639{"mthid2", XSPR(31,467,920), XSPR_MASK, GEKKO, 0, {RS}},
6640{"mtwpar", XSPR(31,467,921), XSPR_MASK, GEKKO, 0, {RS}},
6641{"mtdmau", XSPR(31,467,922), XSPR_MASK, GEKKO, 0, {RS}},
6642{"mtdmal", XSPR(31,467,923), XSPR_MASK, GEKKO, 0, {RS}},
14b57c7c
AM
6643{"mtummcr0", XSPR(31,467,936), XSPR_MASK, PPC750, 0, {RS}},
6644{"mtupmc1", XSPR(31,467,937), XSPR_MASK, PPC750, 0, {RS}},
6645{"mtupmc2", XSPR(31,467,938), XSPR_MASK, PPC750, 0, {RS}},
6646{"mtusia", XSPR(31,467,939), XSPR_MASK, PPC750, 0, {RS}},
6647{"mtummcr1", XSPR(31,467,940), XSPR_MASK, PPC750, 0, {RS}},
6648{"mtupmc3", XSPR(31,467,941), XSPR_MASK, PPC750, 0, {RS}},
6649{"mtupmc4", XSPR(31,467,942), XSPR_MASK, PPC750, 0, {RS}},
6650{"mtzpr", XSPR(31,467,944), XSPR_MASK, PPC403, 0, {RS}},
6651{"mtpid", XSPR(31,467,945), XSPR_MASK, PPC403, 0, {RS}},
6652{"mtrmmucr", XSPR(31,467,946), XSPR_MASK, TITAN, 0, {RS}},
6653{"mtccr0", XSPR(31,467,947), XSPR_MASK, PPC405|TITAN, 0, {RS}},
6654{"mtiac3", XSPR(31,467,948), XSPR_MASK, PPC405, 0, {RS}},
6655{"mtiac4", XSPR(31,467,949), XSPR_MASK, PPC405, 0, {RS}},
6656{"mtdvc1", XSPR(31,467,950), XSPR_MASK, PPC405, 0, {RS}},
6657{"mtdvc2", XSPR(31,467,951), XSPR_MASK, PPC405, 0, {RS}},
6658{"mtmmcr0", XSPR(31,467,952), XSPR_MASK, PPC750, 0, {RS}},
6659{"mtpmc1", XSPR(31,467,953), XSPR_MASK, PPC750, 0, {RS}},
6660{"mtsgr", XSPR(31,467,953), XSPR_MASK, PPC403, 0, {RS}},
6661{"mtdcwr", XSPR(31,467,954), XSPR_MASK, PPC403, 0, {RS}},
6662{"mtpmc2", XSPR(31,467,954), XSPR_MASK, PPC750, 0, {RS}},
6663{"mtsia", XSPR(31,467,955), XSPR_MASK, PPC750, 0, {RS}},
6664{"mtsler", XSPR(31,467,955), XSPR_MASK, PPC405, 0, {RS}},
6665{"mtmmcr1", XSPR(31,467,956), XSPR_MASK, PPC750, 0, {RS}},
6666{"mtsu0r", XSPR(31,467,956), XSPR_MASK, PPC405, 0, {RS}},
6667{"mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405, 0, {RS}},
6668{"mtpmc3", XSPR(31,467,957), XSPR_MASK, PPC750, 0, {RS}},
6669{"mtpmc4", XSPR(31,467,958), XSPR_MASK, PPC750, 0, {RS}},
6670{"mticdbdr", XSPR(31,467,979), XSPR_MASK, PPC403, 0, {RS}},
6671{"mtesr", XSPR(31,467,980), XSPR_MASK, PPC403, 0, {RS}},
6672{"mtdear", XSPR(31,467,981), XSPR_MASK, PPC403, 0, {RS}},
6673{"mtevpr", XSPR(31,467,982), XSPR_MASK, PPC403, 0, {RS}},
6674{"mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403, 0, {RS}},
6675{"mttsr", XSPR(31,467,984), XSPR_MASK, PPC403, 0, {RS}},
6676{"mttcr", XSPR(31,467,986), XSPR_MASK, PPC403, 0, {RS}},
6677{"mtpit", XSPR(31,467,987), XSPR_MASK, PPC403, 0, {RS}},
6678{"mttbhi", XSPR(31,467,988), XSPR_MASK, PPC403, 0, {RS}},
6679{"mttblo", XSPR(31,467,989), XSPR_MASK, PPC403, 0, {RS}},
6680{"mtsrr2", XSPR(31,467,990), XSPR_MASK, PPC403, 0, {RS}},
6681{"mtsrr3", XSPR(31,467,991), XSPR_MASK, PPC403, 0, {RS}},
6682{"mtdbsr", XSPR(31,467,1008), XSPR_MASK, PPC403, 0, {RS}},
fa758a70
AC
6683{"mthid0", XSPR(31,467,1008), XSPR_MASK, GEKKO, 0, {RS}},
6684{"mthid1", XSPR(31,467,1009), XSPR_MASK, GEKKO, 0, {RS}},
14b57c7c 6685{"mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405, 0, {RS}},
fa758a70
AC
6686{"mtiabr", XSPR(31,467,1010), XSPR_MASK, GEKKO, 0, {RS}},
6687{"mthid4", XSPR(31,467,1011), XSPR_MASK, BROADWAY, 0, {RS}},
6688{"mtdbdr", XSPR(31,467,1011), XSPR_MASK, TITAN, 0, {RS}},
14b57c7c
AM
6689{"mtiac1", XSPR(31,467,1012), XSPR_MASK, PPC403, 0, {RS}},
6690{"mtiac2", XSPR(31,467,1013), XSPR_MASK, PPC403, 0, {RS}},
fa758a70 6691{"mtdabr", XSPR(31,467,1013), XSPR_MASK, PPC750, 0, {RS}},
14b57c7c
AM
6692{"mtdac1", XSPR(31,467,1014), XSPR_MASK, PPC403, 0, {RS}},
6693{"mtdac2", XSPR(31,467,1015), XSPR_MASK, PPC403, 0, {RS}},
6694{"mtl2cr", XSPR(31,467,1017), XSPR_MASK, PPC750, 0, {RS}},
6695{"mtdccr", XSPR(31,467,1018), XSPR_MASK, PPC403, 0, {RS}},
6696{"mticcr", XSPR(31,467,1019), XSPR_MASK, PPC403, 0, {RS}},
6697{"mtictc", XSPR(31,467,1019), XSPR_MASK, PPC750, 0, {RS}},
6698{"mtpbl1", XSPR(31,467,1020), XSPR_MASK, PPC403, 0, {RS}},
6699{"mtthrm1", XSPR(31,467,1020), XSPR_MASK, PPC750, 0, {RS}},
6700{"mtpbu1", XSPR(31,467,1021), XSPR_MASK, PPC403, 0, {RS}},
6701{"mtthrm2", XSPR(31,467,1021), XSPR_MASK, PPC750, 0, {RS}},
6702{"mtpbl2", XSPR(31,467,1022), XSPR_MASK, PPC403, 0, {RS}},
6703{"mtthrm3", XSPR(31,467,1022), XSPR_MASK, PPC750, 0, {RS}},
6704{"mtpbu2", XSPR(31,467,1023), XSPR_MASK, PPC403, 0, {RS}},
6705{"mtspr", X(31,467), X_MASK, COM, 0, {SPR, RS}},
6706
6707{"dcbi", X(31,470), XRT_MASK, PPC, 0, {RA0, RB}},
6708
6709{"nand", XRC(31,476,0), X_MASK, COM, 0, {RA, RS, RB}},
6710{"nand.", XRC(31,476,1), X_MASK, COM, 0, {RA, RS, RB}},
6711
6712{"dsn", X(31,483), XRT_MASK, E500MC, 0, {RA, RB}},
6713
62adc510 6714{"dcread", X(31,486), X_MASK, PPC403|PPC440, PPCA2, {RT, RA0, RB}},
14b57c7c
AM
6715
6716{"icbtls", X(31,486), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
6717
6718{"stvxl", X(31,487), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
6719
6720{"nabs", XO(31,488,0,0), XORB_MASK, M601, 0, {RT, RA}},
6721{"nabs.", XO(31,488,0,1), XORB_MASK, M601, 0, {RT, RA}},
6722
6723{"divd", XO(31,489,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6724{"divd.", XO(31,489,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
6725
6726{"divw", XO(31,491,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
6727{"divw.", XO(31,491,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
6728
6729{"icbtlse", X(31,494), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
6730
6731{"slbia", X(31,498), 0xff1fffff, POWER6, 0, {IH}},
4bc0608a 6732{"slbia", X(31,498), 0xffffffff, PPC64, POWER6, {0}},
1cb0a767 6733
14b57c7c 6734{"cli", X(31,502), XRB_MASK, POWER, 0, {RT, RA}},
1cb0a767 6735
14b57c7c 6736{"popcntd", X(31,506), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
066be9f7 6737
14b57c7c 6738{"cmpb", X(31,508), X_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS, RB}},
1cb0a767 6739
14b57c7c 6740{"mcrxr", X(31,512), XBFRARB_MASK, COM, POWER7, {BF}},
252b5132 6741
dfdaec14 6742{"lbdcbx", X(31,514), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 6743{"lbdx", X(31,515), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 6744
14b57c7c 6745{"bblels", X(31,518), X_MASK, PPCBRLK, 0, {0}},
252b5132 6746
14b57c7c
AM
6747{"lvlx", X(31,519), X_MASK, CELL, 0, {VD, RA0, RB}},
6748{"lbfcmux", APU(31,519,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 6749
14b57c7c
AM
6750{"subfco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6751{"sfo", XO(31,8,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6752{"subco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
6753{"subfco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6754{"sfo.", XO(31,8,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6755{"subco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
43e65147 6756
14b57c7c
AM
6757{"addco", XO(31,10,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6758{"ao", XO(31,10,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6759{"addco.", XO(31,10,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6760{"ao.", XO(31,10,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6761
14b57c7c 6762{"lxsspx", X(31,524), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
c0637f3a 6763
14b57c7c 6764{"clcs", X(31,531), XRB_MASK, M601, 0, {RT, RA}},
418c1742 6765
14b57c7c 6766{"ldbrx", X(31,532), X_MASK, CELL|POWER7|PPCA2, 0, {RT, RA0, RB}},
418c1742 6767
14b57c7c
AM
6768{"lswx", X(31,533), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, RBX}},
6769{"lsx", X(31,533), X_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6770
14b57c7c
AM
6771{"lwbrx", X(31,534), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
6772{"lbrx", X(31,534), X_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6773
14b57c7c 6774{"lfsx", X(31,535), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
702f0fb4 6775
14b57c7c
AM
6776{"srw", XRC(31,536,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
6777{"sr", XRC(31,536,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
6778{"srw.", XRC(31,536,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
6779{"sr.", XRC(31,536,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
252b5132 6780
14b57c7c
AM
6781{"rrib", XRC(31,537,0), X_MASK, M601, 0, {RA, RS, RB}},
6782{"rrib.", XRC(31,537,1), X_MASK, M601, 0, {RA, RS, RB}},
23976049 6783
14b57c7c
AM
6784{"cnttzw", XRC(31,538,0), XRB_MASK, POWER9, 0, {RA, RS}},
6785{"cnttzw.", XRC(31,538,1), XRB_MASK, POWER9, 0, {RA, RS}},
a680de9a 6786
14b57c7c
AM
6787{"srd", XRC(31,539,0), X_MASK, PPC64, 0, {RA, RS, RB}},
6788{"srd.", XRC(31,539,1), X_MASK, PPC64, 0, {RA, RS, RB}},
f509565f 6789
14b57c7c
AM
6790{"maskir", XRC(31,541,0), X_MASK, M601, 0, {RA, RS, RB}},
6791{"maskir.", XRC(31,541,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 6792
dfdaec14 6793{"lhdcbx", X(31,546), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 6794{"lhdx", X(31,547), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 6795
ac8f0f72 6796{"lvtrx", X(31,549), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6797
14b57c7c 6798{"bbelr", X(31,550), X_MASK, PPCBRLK, 0, {0}},
418c1742 6799
14b57c7c
AM
6800{"lvrx", X(31,551), X_MASK, CELL, 0, {VD, RA0, RB}},
6801{"lhfcmux", APU(31,551,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 6802
14b57c7c
AM
6803{"subfo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
6804{"subo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RB, RA}},
6805{"subfo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
6806{"subo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RB, RA}},
252b5132 6807
14b57c7c 6808{"tlbsync", X(31,566), 0xffffffff, PPC, 0, {0}},
252b5132 6809
14b57c7c 6810{"lfsux", X(31,567), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
252b5132 6811
14b57c7c
AM
6812{"cnttzd", XRC(31,570,0), XRB_MASK, POWER9, 0, {RA, RS}},
6813{"cnttzd.", XRC(31,570,1), XRB_MASK, POWER9, 0, {RA, RS}},
a680de9a 6814
14b57c7c 6815{"mcrxrx", X(31,576), XBFRARB_MASK, POWER9, 0, {BF}},
a680de9a 6816
dfdaec14 6817{"lwdcbx", X(31,578), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 6818{"lwdx", X(31,579), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 6819
ac8f0f72 6820{"lvtlx", X(31,581), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6821
14b57c7c 6822{"lwat", X(31,582), X_MASK, POWER9, 0, {RT, RA0, FC}},
a680de9a 6823
14b57c7c 6824{"lwfcmux", APU(31,583,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 6825
14b57c7c 6826{"lxsdx", X(31,588), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
066be9f7 6827
14b57c7c 6828{"mfsr", X(31,595), XRB_MASK|(1<<20), COM, NON32, {RT, SR}},
252b5132 6829
14b57c7c
AM
6830{"lswi", X(31,597), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, NBI}},
6831{"lsi", X(31,597), X_MASK, PWRCOM, 0, {RT, RA0, NB}},
252b5132 6832
dc302c00 6833{"hwsync", XSYNC(31,598,0), 0xffffffff, POWER4, BOOKE|PPC476, {0}},
e01d869a 6834{"lwsync", XSYNC(31,598,1), 0xffffffff, PPC, E500, {0}},
14b57c7c 6835{"ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, 0, {0}},
fd486b63
PB
6836{"sync", X(31,598), XSYNCLE_MASK, E6500, 0, {LS, ESYNC}},
6837{"sync", X(31,598), XSYNC_MASK, PPCCOM, BOOKE|PPC476, {LS}},
14b57c7c
AM
6838{"msync", X(31,598), 0xffffffff, BOOKE|PPCA2|PPC476, 0, {0}},
6839{"sync", X(31,598), 0xffffffff, BOOKE|PPC476, E6500, {0}},
6840{"lwsync", X(31,598), 0xffffffff, E500, 0, {0}},
6841{"dcs", X(31,598), 0xffffffff, PWRCOM, 0, {0}},
418c1742 6842
14b57c7c 6843{"lfdx", X(31,599), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
23976049 6844
066be9f7 6845{"mffgpr", XRC(31,607,0), XRA_MASK, POWER6, POWER7, {FRT, RB}},
14b57c7c 6846{"lfdepx", X(31,607), X_MASK, E500MC|PPCA2, 0, {FRT, RA0, RB}},
252b5132 6847
14b57c7c 6848{"lddx", X(31,611), X_MASK, E500MC, 0, {RT, RA, RB}},
19a6653c 6849
ac8f0f72 6850{"lvswx", X(31,613), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6851
14b57c7c 6852{"ldat", X(31,614), X_MASK, POWER9, 0, {RT, RA0, FC}},
a680de9a 6853
14b57c7c 6854{"lqfcmux", APU(31,615,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 6855
14b57c7c
AM
6856{"nego", XO(31,104,1,0), XORB_MASK, COM, 0, {RT, RA}},
6857{"nego.", XO(31,104,1,1), XORB_MASK, COM, 0, {RT, RA}},
252b5132 6858
14b57c7c
AM
6859{"mulo", XO(31,107,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
6860{"mulo.", XO(31,107,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 6861
14b57c7c 6862{"mfsri", X(31,627), X_MASK, M601, 0, {RT, RA, RB}},
252b5132 6863
14b57c7c 6864{"dclst", X(31,630), XRB_MASK, M601, 0, {RS, RA}},
252b5132 6865
14b57c7c 6866{"lfdux", X(31,631), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
252b5132 6867
dfdaec14 6868{"stbdcbx", X(31,642), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 6869{"stbdx", X(31,643), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 6870
14b57c7c
AM
6871{"stvlx", X(31,647), X_MASK, CELL, 0, {VS, RA0, RB}},
6872{"stbfcmux", APU(31,647,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
23976049 6873
14b57c7c 6874{"stxsspx", X(31,652), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
c0637f3a 6875
14b57c7c 6876{"tbegin.", XRC(31,654,1), XRTLRARB_MASK, PPCHTM, 0, {HTM_R}},
5817ffd1 6877
14b57c7c
AM
6878{"subfeo", XO(31,136,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6879{"sfeo", XO(31,136,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6880{"subfeo.", XO(31,136,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6881{"sfeo.", XO(31,136,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6882
14b57c7c
AM
6883{"addeo", XO(31,138,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6884{"aeo", XO(31,138,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6885{"addeo.", XO(31,138,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6886{"aeo.", XO(31,138,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6887
14b57c7c 6888{"mfsrin", X(31,659), XRA_MASK, PPC, NON32, {RT, RB}},
418c1742 6889
14b57c7c 6890{"stdbrx", X(31,660), X_MASK, CELL|POWER7|PPCA2, 0, {RS, RA0, RB}},
252b5132 6891
14b57c7c
AM
6892{"stswx", X(31,661), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, RB}},
6893{"stsx", X(31,661), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
418c1742 6894
14b57c7c
AM
6895{"stwbrx", X(31,662), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
6896{"stbrx", X(31,662), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
252b5132 6897
14b57c7c 6898{"stfsx", X(31,663), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
ede602d7 6899
14b57c7c
AM
6900{"srq", XRC(31,664,0), X_MASK, M601, 0, {RA, RS, RB}},
6901{"srq.", XRC(31,664,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 6902
14b57c7c
AM
6903{"sre", XRC(31,665,0), X_MASK, M601, 0, {RA, RS, RB}},
6904{"sre.", XRC(31,665,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 6905
dfdaec14 6906{"sthdcbx", X(31,674), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 6907{"sthdx", X(31,675), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 6908
ac8f0f72 6909{"stvfrx", X(31,677), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 6910
14b57c7c
AM
6911{"stvrx", X(31,679), X_MASK, CELL, 0, {VS, RA0, RB}},
6912{"sthfcmux", APU(31,679,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 6913
14b57c7c
AM
6914{"tendall.", XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, 0, {0}},
6915{"tend.", XRC(31,686,1), XRTARARB_MASK, PPCHTM, 0, {HTM_A}},
5817ffd1 6916
14b57c7c 6917{"stbcx.", XRC(31,694,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
066be9f7 6918
14b57c7c 6919{"stfsux", X(31,695), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
252b5132 6920
14b57c7c
AM
6921{"sriq", XRC(31,696,0), X_MASK, M601, 0, {RA, RS, SH}},
6922{"sriq.", XRC(31,696,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 6923
dfdaec14 6924{"stwdcbx", X(31,706), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 6925{"stwdx", X(31,707), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 6926
ac8f0f72 6927{"stvflx", X(31,709), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 6928
14b57c7c 6929{"stwat", X(31,710), X_MASK, POWER9, 0, {RS, RA0, FC}},
a680de9a 6930
14b57c7c 6931{"stwfcmux", APU(31,711,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 6932
14b57c7c 6933{"stxsdx", X(31,716), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
066be9f7 6934
14b57c7c 6935{"tcheck", X(31,718), XRTBFRARB_MASK, PPCHTM, 0, {BF}},
5817ffd1 6936
14b57c7c
AM
6937{"subfzeo", XO(31,200,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6938{"sfzeo", XO(31,200,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6939{"subfzeo.", XO(31,200,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6940{"sfzeo.", XO(31,200,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 6941
14b57c7c
AM
6942{"addzeo", XO(31,202,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6943{"azeo", XO(31,202,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6944{"addzeo.", XO(31,202,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6945{"azeo.", XO(31,202,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
fdd12ef3 6946
14b57c7c
AM
6947{"stswi", X(31,725), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, NB}},
6948{"stsi", X(31,725), X_MASK, PWRCOM, 0, {RS, RA0, NB}},
252b5132 6949
14b57c7c 6950{"sthcx.", XRC(31,726,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
066be9f7 6951
14b57c7c 6952{"stfdx", X(31,727), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
252b5132 6953
14b57c7c
AM
6954{"srlq", XRC(31,728,0), X_MASK, M601, 0, {RA, RS, RB}},
6955{"srlq.", XRC(31,728,1), X_MASK, M601, 0, {RA, RS, RB}},
418c1742 6956
14b57c7c
AM
6957{"sreq", XRC(31,729,0), X_MASK, M601, 0, {RA, RS, RB}},
6958{"sreq.", XRC(31,729,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 6959
066be9f7 6960{"mftgpr", XRC(31,735,0), XRA_MASK, POWER6, POWER7, {RT, FRB}},
14b57c7c 6961{"stfdepx", X(31,735), X_MASK, E500MC|PPCA2, 0, {FRS, RA0, RB}},
252b5132 6962
14b57c7c 6963{"stddx", X(31,739), X_MASK, E500MC, 0, {RS, RA, RB}},
19a6653c 6964
ac8f0f72 6965{"stvswx", X(31,741), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 6966
14b57c7c 6967{"stdat", X(31,742), X_MASK, POWER9, 0, {RS, RA0, FC}},
a680de9a 6968
14b57c7c 6969{"stqfcmux", APU(31,743,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 6970
14b57c7c
AM
6971{"subfmeo", XO(31,232,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6972{"sfmeo", XO(31,232,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6973{"subfmeo.", XO(31,232,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6974{"sfmeo.", XO(31,232,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 6975
14b57c7c
AM
6976{"mulldo", XO(31,233,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6977{"mulldo.", XO(31,233,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
252b5132 6978
14b57c7c
AM
6979{"addmeo", XO(31,234,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6980{"ameo", XO(31,234,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6981{"addmeo.", XO(31,234,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6982{"ameo.", XO(31,234,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 6983
14b57c7c
AM
6984{"mullwo", XO(31,235,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6985{"mulso", XO(31,235,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6986{"mullwo.", XO(31,235,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6987{"mulso.", XO(31,235,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
702f0fb4 6988
14b57c7c
AM
6989{"tsuspend.", XRCL(31,750,0,1), XRTRARB_MASK,PPCHTM, 0, {0}},
6990{"tresume.", XRCL(31,750,1,1), XRTRARB_MASK,PPCHTM, 0, {0}},
6991{"tsr.", XRC(31,750,1), XRTLRARB_MASK,PPCHTM, 0, {L}},
5817ffd1 6992
14b57c7c 6993{"darn", X(31,755), XLRAND_MASK, POWER9, 0, {RT, LRAND}},
a680de9a 6994
14b57c7c
AM
6995{"dcba", X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
6996{"dcbal", XOPL(31,758,1), XRT_MASK, E500MC, 0, {RA0, RB}},
252b5132 6997
14b57c7c 6998{"stfdux", X(31,759), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
252b5132 6999
14b57c7c
AM
7000{"srliq", XRC(31,760,0), X_MASK, M601, 0, {RA, RS, SH}},
7001{"srliq.", XRC(31,760,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 7002
ac8f0f72 7003{"lvsm", X(31,773), X_MASK, E6500, 0, {VD, RA0, RB}},
a680de9a 7004
fd486b63 7005{"copy", XOPL(31,774,1), XRT_MASK, POWER9, 0, {RA0, RB}},
a680de9a 7006
ac8f0f72 7007{"stvepxl", X(31,775), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c
AM
7008{"lvlxl", X(31,775), X_MASK, CELL, 0, {VD, RA0, RB}},
7009{"ldfcmux", APU(31,775,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
ede602d7 7010
14b57c7c
AM
7011{"dozo", XO(31,264,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
7012{"dozo.", XO(31,264,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 7013
14b57c7c
AM
7014{"addo", XO(31,266,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7015{"caxo", XO(31,266,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7016{"addo.", XO(31,266,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7017{"caxo.", XO(31,266,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 7018
14b57c7c
AM
7019{"modsd", X(31,777), X_MASK, POWER9, 0, {RT, RA, RB}},
7020{"modsw", X(31,779), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 7021
14b57c7c
AM
7022{"lxvw4x", X(31,780), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
7023{"lxsibzx", X(31,781), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
066be9f7 7024
14b57c7c 7025{"tabortwc.", XRC(31,782,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
5817ffd1 7026
14b57c7c 7027{"tlbivax", X(31,786), XRT_MASK, BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
252b5132 7028
14b57c7c 7029{"lwzcix", X(31,789), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 7030
14b57c7c 7031{"lhbrx", X(31,790), X_MASK, COM, 0, {RT, RA0, RB}},
252b5132 7032
73f07bff 7033{"lfdpx", X(31,791), X_MASK|Q_MASK, POWER6, POWER7, {FRTp, RA0, RB}},
14b57c7c 7034{"lfqx", X(31,791), X_MASK, POWER2, 0, {FRT, RA, RB}},
418c1742 7035
14b57c7c
AM
7036{"sraw", XRC(31,792,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
7037{"sra", XRC(31,792,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
7038{"sraw.", XRC(31,792,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
7039{"sra.", XRC(31,792,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
fdd12ef3 7040
14b57c7c
AM
7041{"srad", XRC(31,794,0), X_MASK, PPC64, 0, {RA, RS, RB}},
7042{"srad.", XRC(31,794,1), X_MASK, PPC64, 0, {RA, RS, RB}},
252b5132 7043
74081948 7044{"evlddepx", VX (31, 1598), VX_MASK, PPCSPE, 0, {RT, RA, RB}},
14b57c7c 7045{"lfddx", X(31,803), X_MASK, E500MC, 0, {FRT, RA, RB}},
19a6653c 7046
ac8f0f72
AM
7047{"lvtrxl", X(31,805), X_MASK, E6500, 0, {VD, RA0, RB}},
7048{"stvepx", X(31,807), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c 7049{"lvrxl", X(31,807), X_MASK, CELL, 0, {VD, RA0, RB}},
252b5132 7050
14b57c7c
AM
7051{"lxvh8x", X(31,812), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
7052{"lxsihzx", X(31,813), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 7053
14b57c7c 7054{"tabortdc.", XRC(31,814,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
5817ffd1 7055
14b57c7c 7056{"rac", X(31,818), X_MASK, M601, 0, {RT, RA, RB}},
252b5132 7057
14b57c7c 7058{"erativax", X(31,819), X_MASK, PPCA2, 0, {RS, RA0, RB}},
e0d602ec 7059
14b57c7c 7060{"lhzcix", X(31,821), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 7061
14b57c7c 7062{"dss", XDSS(31,822,0), XDSS_MASK, PPCVEC, 0, {STRM}},
252b5132 7063
14b57c7c 7064{"lfqux", X(31,823), X_MASK, POWER2, 0, {FRT, RA, RB}},
fdd12ef3 7065
14b57c7c
AM
7066{"srawi", XRC(31,824,0), X_MASK, PPCCOM, 0, {RA, RS, SH}},
7067{"srai", XRC(31,824,0), X_MASK, PWRCOM, 0, {RA, RS, SH}},
7068{"srawi.", XRC(31,824,1), X_MASK, PPCCOM, 0, {RA, RS, SH}},
7069{"srai.", XRC(31,824,1), X_MASK, PWRCOM, 0, {RA, RS, SH}},
702f0fb4 7070
14b57c7c
AM
7071{"sradi", XS(31,413,0), XS_MASK, PPC64, 0, {RA, RS, SH6}},
7072{"sradi.", XS(31,413,1), XS_MASK, PPC64, 0, {RA, RS, SH6}},
e0c21649 7073
ac8f0f72 7074{"lvtlxl", X(31,837), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 7075
fd486b63 7076{"cpabort", X(31,838), XRTRARB_MASK,POWER9, 0, {0}},
a680de9a 7077
14b57c7c
AM
7078{"divo", XO(31,331,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
7079{"divo.", XO(31,331,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 7080
14b57c7c 7081{"lxvd2x", X(31,844), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
a680de9a 7082{"lxvx", X(31,844), XX1_MASK, POWER8, POWER9|PPCVSX3, {XT6, RA0, RB}},
9b4e5766 7083
14b57c7c 7084{"tabortwci.", XRC(31,846,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
5817ffd1 7085
14b57c7c 7086{"tlbsrx.", XRC(31,850,1), XRT_MASK, PPCA2, 0, {RA0, RB}},
e0d602ec 7087
fd486b63 7088{"slbiag", X(31,850), XRARB_MASK, POWER9, 0, {RS}},
14b57c7c 7089{"slbmfev", X(31,851), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
a680de9a 7090{"slbmfev", X(31,851), XRA_MASK, PPC64, POWER9, {RT, RB}},
252b5132 7091
14b57c7c 7092{"lbzcix", X(31,853), X_MASK, POWER6, 0, {RT, RA0, RB}},
418c1742 7093
9fe54b1c 7094{"eieio", X(31,854), 0xffffffff, PPC, BOOKE|PPCA2|PPC476, {0}},
14b57c7c
AM
7095{"mbar", X(31,854), X_MASK, BOOKE|PPCA2|PPC476, 0, {MO}},
7096{"eieio", XMBAR(31,854,1),0xffffffff, E500, 0, {0}},
7097{"eieio", X(31,854), 0xffffffff, PPCA2|PPC476, 0, {0}},
418c1742 7098
14b57c7c 7099{"lfiwax", X(31,855), X_MASK, POWER6|PPCA2|PPC476, 0, {FRT, RA0, RB}},
418c1742 7100
ac8f0f72 7101{"lvswxl", X(31,869), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 7102
14b57c7c
AM
7103{"abso", XO(31,360,1,0), XORB_MASK, M601, 0, {RT, RA}},
7104{"abso.", XO(31,360,1,1), XORB_MASK, M601, 0, {RT, RA}},
702f0fb4 7105
14b57c7c
AM
7106{"divso", XO(31,363,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
7107{"divso.", XO(31,363,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 7108
14b57c7c 7109{"lxvb16x", X(31,876), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 7110
14b57c7c 7111{"tabortdci.", XRC(31,878,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
5817ffd1 7112
14b57c7c 7113{"rmieg", X(31,882), XRTRA_MASK, POWER9, 0, {RB}},
a680de9a 7114
14b57c7c 7115{"ldcix", X(31,885), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 7116
14b57c7c 7117{"msgsync", X(31,886), 0xffffffff, POWER9, 0, {0}},
a680de9a 7118
14b57c7c 7119{"lfiwzx", X(31,887), X_MASK, POWER7|PPCA2, 0, {FRT, RA0, RB}},
066be9f7 7120
14b57c7c
AM
7121{"extswsli", XS(31,445,0), XS_MASK, POWER9, 0, {RA, RS, SH6}},
7122{"extswsli.", XS(31,445,1), XS_MASK, POWER9, 0, {RA, RS, SH6}},
a680de9a 7123
fd486b63 7124{"paste.", XRCL(31,902,1,1),XRT_MASK, POWER9, 0, {RA0, RB}},
a680de9a 7125
14b57c7c
AM
7126{"stvlxl", X(31,903), X_MASK, CELL, 0, {VS, RA0, RB}},
7127{"stdfcmux", APU(31,903,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 7128
14b57c7c
AM
7129{"divdeuo", XO(31,393,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7130{"divdeuo.", XO(31,393,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7131{"divweuo", XO(31,395,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7132{"divweuo.", XO(31,395,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 7133
14b57c7c
AM
7134{"stxvw4x", X(31,908), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
7135{"stxsibx", X(31,909), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
066be9f7 7136
14b57c7c 7137{"tabort.", XRC(31,910,1), XRTRB_MASK, PPCHTM, 0, {RA}},
5817ffd1 7138
14b57c7c
AM
7139{"tlbsx", XRC(31,914,0), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
7140{"tlbsx.", XRC(31,914,1), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
252b5132 7141
14b57c7c 7142{"slbmfee", X(31,915), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
a680de9a 7143{"slbmfee", X(31,915), XRA_MASK, PPC64, POWER9, {RT, RB}},
702f0fb4 7144
14b57c7c 7145{"stwcix", X(31,917), X_MASK, POWER6, 0, {RS, RA0, RB}},
f5c120c5 7146
14b57c7c 7147{"sthbrx", X(31,918), X_MASK, COM, 0, {RS, RA0, RB}},
252b5132 7148
73f07bff 7149{"stfdpx", X(31,919), X_MASK|Q_MASK, POWER6, POWER7, {FRSp, RA0, RB}},
14b57c7c 7150{"stfqx", X(31,919), X_MASK, POWER2, 0, {FRS, RA0, RB}},
6ba045b1 7151
14b57c7c
AM
7152{"sraq", XRC(31,920,0), X_MASK, M601, 0, {RA, RS, RB}},
7153{"sraq.", XRC(31,920,1), X_MASK, M601, 0, {RA, RS, RB}},
702f0fb4 7154
14b57c7c
AM
7155{"srea", XRC(31,921,0), X_MASK, M601, 0, {RA, RS, RB}},
7156{"srea.", XRC(31,921,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 7157
14b57c7c
AM
7158{"extsh", XRC(31,922,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
7159{"exts", XRC(31,922,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
7160{"extsh.", XRC(31,922,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
7161{"exts.", XRC(31,922,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
702f0fb4 7162
74081948 7163{"evstddepx", VX (31, 1854), VX_MASK, PPCSPE, 0, {RT, RA, RB}},
14b57c7c 7164{"stfddx", X(31,931), X_MASK, E500MC, 0, {FRS, RA, RB}},
19a6653c 7165
ac8f0f72 7166{"stvfrxl", X(31,933), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7167
14b57c7c 7168{"wclrone", XOPL2(31,934,2),XRT_MASK, PPCA2, 0, {RA0, RB}},
a5721ba2
AM
7169{"wclrall", X(31,934), XRARB_MASK, PPCA2, 0, {L2}},
7170{"wclr", X(31,934), X_MASK, PPCA2, 0, {L2, RA0, RB}},
85d4ac0b 7171
14b57c7c 7172{"stvrxl", X(31,935), X_MASK, CELL, 0, {VS, RA0, RB}},
6ba045b1 7173
14b57c7c
AM
7174{"divdeo", XO(31,425,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7175{"divdeo.", XO(31,425,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7176{"divweo", XO(31,427,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7177{"divweo.", XO(31,427,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 7178
14b57c7c
AM
7179{"stxvh8x", X(31,940), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
7180{"stxsihx", X(31,941), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 7181
14b57c7c 7182{"treclaim.", XRC(31,942,1), XRTRB_MASK, PPCHTM, 0, {RA}},
5817ffd1 7183
e0d602ec
BE
7184{"tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
7185{"tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
14b57c7c 7186{"tlbre", X(31,946), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
702f0fb4 7187
14b57c7c 7188{"sthcix", X(31,949), X_MASK, POWER6, 0, {RS, RA0, RB}},
252b5132 7189
14b57c7c
AM
7190{"icswepx", XRC(31,950,0), X_MASK, PPCA2, 0, {RS, RA, RB}},
7191{"icswepx.", XRC(31,950,1), X_MASK, PPCA2, 0, {RS, RA, RB}},
51b5d4a8 7192
14b57c7c 7193{"stfqux", X(31,951), X_MASK, POWER2, 0, {FRS, RA, RB}},
252b5132 7194
14b57c7c
AM
7195{"sraiq", XRC(31,952,0), X_MASK, M601, 0, {RA, RS, SH}},
7196{"sraiq.", XRC(31,952,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 7197
14b57c7c
AM
7198{"extsb", XRC(31,954,0), XRB_MASK, PPC, 0, {RA, RS}},
7199{"extsb.", XRC(31,954,1), XRB_MASK, PPC, 0, {RA, RS}},
252b5132 7200
ac8f0f72 7201{"stvflxl", X(31,965), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7202
62adc510 7203{"iccci", X(31,966), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
14b57c7c 7204{"ici", X(31,966), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
43e65147 7205
14b57c7c
AM
7206{"divduo", XO(31,457,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7207{"divduo.", XO(31,457,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 7208
14b57c7c
AM
7209{"divwuo", XO(31,459,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7210{"divwuo.", XO(31,459,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
252b5132 7211
14b57c7c 7212{"stxvd2x", X(31,972), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
a680de9a 7213{"stxvx", X(31,972), XX1_MASK, POWER8, POWER9|PPCVSX3, {XS6, RA0, RB}},
9b4e5766 7214
9fe54b1c 7215{"tlbld", X(31,978), XRTRA_MASK, PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}},
14b57c7c
AM
7216{"tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, 0, {RT, RA}},
7217{"tlbwelo", XTLB(31,978,1), XTLB_MASK, PPC403, 0, {RT, RA}},
7218{"tlbwe", X(31,978), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
418c1742 7219
14b57c7c 7220{"slbfee.", XRC(31,979,1), XRA_MASK, POWER6, 0, {RT, RB}},
c4e676f1 7221
14b57c7c 7222{"stbcix", X(31,981), X_MASK, POWER6, 0, {RS, RA0, RB}},
252b5132 7223
14b57c7c 7224{"icbi", X(31,982), XRT_MASK, PPC, 0, {RA0, RB}},
252b5132 7225
14b57c7c 7226{"stfiwx", X(31,983), X_MASK, PPC, PPCEFS, {FRS, RA0, RB}},
702f0fb4 7227
14b57c7c
AM
7228{"extsw", XRC(31,986,0), XRB_MASK, PPC64, 0, {RA, RS}},
7229{"extsw.", XRC(31,986,1), XRB_MASK, PPC64, 0, {RA, RS}},
252b5132 7230
14b57c7c 7231{"icbiep", XRT(31,991,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
19a6653c 7232
ac8f0f72 7233{"stvswxl", X(31,997), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7234
14b57c7c 7235{"icread", X(31,998), XRT_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA0, RB}},
252b5132 7236
14b57c7c
AM
7237{"nabso", XO(31,488,1,0), XORB_MASK, M601, 0, {RT, RA}},
7238{"nabso.", XO(31,488,1,1), XORB_MASK, M601, 0, {RT, RA}},
252b5132 7239
14b57c7c
AM
7240{"divdo", XO(31,489,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7241{"divdo.", XO(31,489,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 7242
14b57c7c
AM
7243{"divwo", XO(31,491,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7244{"divwo.", XO(31,491,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
418c1742 7245
14b57c7c 7246{"stxvb16x", X(31,1004), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 7247
14b57c7c 7248{"trechkpt.", XRC(31,1006,1), XRTRARB_MASK,PPCHTM, 0, {0}},
702f0fb4 7249
14b57c7c 7250{"tlbli", X(31,1010), XRTRA_MASK, PPC, TITAN, {RB}},
252b5132 7251
14b57c7c 7252{"stdcix", X(31,1013), X_MASK, POWER6, 0, {RS, RA0, RB}},
418c1742 7253
14b57c7c
AM
7254{"dcbz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
7255{"dclz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
786e2c0f 7256
14b57c7c 7257{"dcbzep", XRT(31,1023,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
ede602d7 7258
14b57c7c 7259{"dcbzl", XOPL(31,1014,1), XRT_MASK, POWER4|E500MC, PPC476, {RA0, RB}},
252b5132 7260
14b57c7c
AM
7261{"cctpl", 0x7c210b78, 0xffffffff, CELL, 0, {0}},
7262{"cctpm", 0x7c421378, 0xffffffff, CELL, 0, {0}},
7263{"cctph", 0x7c631b78, 0xffffffff, CELL, 0, {0}},
252b5132 7264
14b57c7c
AM
7265{"dstt", XDSS(31,342,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
7266{"dststt", XDSS(31,374,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
7267{"dssall", XDSS(31,822,1), XDSS_MASK, PPCVEC, 0, {0}},
252b5132 7268
14b57c7c
AM
7269{"db8cyc", 0x7f9ce378, 0xffffffff, CELL, 0, {0}},
7270{"db10cyc", 0x7fbdeb78, 0xffffffff, CELL, 0, {0}},
7271{"db12cyc", 0x7fdef378, 0xffffffff, CELL, 0, {0}},
7272{"db16cyc", 0x7ffffb78, 0xffffffff, CELL, 0, {0}},
252b5132 7273
14b57c7c
AM
7274{"lwz", OP(32), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}},
7275{"l", OP(32), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 7276
14b57c7c
AM
7277{"lwzu", OP(33), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAL}},
7278{"lu", OP(33), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 7279
14b57c7c 7280{"lbz", OP(34), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 7281
14b57c7c 7282{"lbzu", OP(35), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 7283
14b57c7c
AM
7284{"stw", OP(36), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
7285{"st", OP(36), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 7286
14b57c7c
AM
7287{"stwu", OP(37), OP_MASK, PPCCOM, PPCVLE, {RS, D, RAS}},
7288{"stu", OP(37), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 7289
14b57c7c 7290{"stb", OP(38), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
252b5132 7291
14b57c7c 7292{"stbu", OP(39), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
252b5132 7293
14b57c7c 7294{"lhz", OP(40), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 7295
14b57c7c 7296{"lhzu", OP(41), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 7297
14b57c7c 7298{"lha", OP(42), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 7299
14b57c7c 7300{"lhau", OP(43), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 7301
14b57c7c 7302{"sth", OP(44), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
252b5132 7303
14b57c7c 7304{"sthu", OP(45), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
252b5132 7305
14b57c7c
AM
7306{"lmw", OP(46), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAM}},
7307{"lm", OP(46), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 7308
14b57c7c
AM
7309{"stmw", OP(47), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
7310{"stm", OP(47), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 7311
14b57c7c 7312{"lfs", OP(48), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
252b5132 7313
14b57c7c 7314{"lfsu", OP(49), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
252b5132 7315
14b57c7c 7316{"lfd", OP(50), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
252b5132 7317
14b57c7c 7318{"lfdu", OP(51), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
252b5132 7319
14b57c7c 7320{"stfs", OP(52), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
adadcc0c 7321
14b57c7c 7322{"stfsu", OP(53), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
252b5132 7323
14b57c7c 7324{"stfd", OP(54), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
c3d65c1c 7325
14b57c7c 7326{"stfdu", OP(55), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
252b5132 7327
73f07bff 7328{"lq", OP(56), OP_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}},
14b57c7c
AM
7329{"psq_l", OP(56), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
7330{"lfq", OP(56), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
418c1742 7331
14b57c7c
AM
7332{"lxsd", DSO(57,2), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
7333{"lxssp", DSO(57,3), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
73f07bff 7334{"lfdp", OP(57), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}},
14b57c7c
AM
7335{"psq_lu", OP(57), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
7336{"lfqu", OP(57), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
802a735e 7337
14b57c7c
AM
7338{"ld", DSO(58,0), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
7339{"ldu", DSO(58,1), DS_MASK, PPC64, PPCVLE, {RT, DS, RAL}},
7340{"lwa", DSO(58,2), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
702f0fb4 7341
14b57c7c
AM
7342{"dadd", XRC(59,2,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7343{"dadd.", XRC(59,2,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
252b5132 7344
14b57c7c
AM
7345{"dqua", ZRC(59,3,0), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
7346{"dqua.", ZRC(59,3,1), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
252b5132 7347
14b57c7c
AM
7348{"fdivs", A(59,18,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7349{"fdivs.", A(59,18,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 7350
14b57c7c
AM
7351{"fsubs", A(59,20,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7352{"fsubs.", A(59,20,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 7353
14b57c7c
AM
7354{"fadds", A(59,21,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7355{"fadds.", A(59,21,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 7356
14b57c7c
AM
7357{"fsqrts", A(59,22,0), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
7358{"fsqrts.", A(59,22,1), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
252b5132 7359
14b57c7c
AM
7360{"fres", A(59,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7361{"fres", A(59,24,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
7362{"fres.", A(59,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7363{"fres.", A(59,24,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
1ed8e1e4 7364
14b57c7c
AM
7365{"fmuls", A(59,25,0), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
7366{"fmuls.", A(59,25,1), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
252b5132 7367
14b57c7c
AM
7368{"frsqrtes", A(59,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7369{"frsqrtes", A(59,26,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
7370{"frsqrtes.", A(59,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7371{"frsqrtes.", A(59,26,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
252b5132 7372
14b57c7c
AM
7373{"fmsubs", A(59,28,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7374{"fmsubs.", A(59,28,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7375
14b57c7c
AM
7376{"fmadds", A(59,29,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7377{"fmadds.", A(59,29,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7378
14b57c7c
AM
7379{"fnmsubs", A(59,30,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7380{"fnmsubs.", A(59,30,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
702f0fb4 7381
14b57c7c
AM
7382{"fnmadds", A(59,31,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7383{"fnmadds.", A(59,31,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
702f0fb4 7384
14b57c7c
AM
7385{"dmul", XRC(59,34,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7386{"dmul.", XRC(59,34,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
702f0fb4 7387
14b57c7c
AM
7388{"drrnd", ZRC(59,35,0), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
7389{"drrnd.", ZRC(59,35,1), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
702f0fb4 7390
14b57c7c
AM
7391{"dscli", ZRC(59,66,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
7392{"dscli.", ZRC(59,66,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
702f0fb4 7393
14b57c7c
AM
7394{"dquai", ZRC(59,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
7395{"dquai.", ZRC(59,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
702f0fb4 7396
14b57c7c
AM
7397{"dscri", ZRC(59,98,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
7398{"dscri.", ZRC(59,98,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
702f0fb4 7399
14b57c7c
AM
7400{"drintx", ZRC(59,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
7401{"drintx.", ZRC(59,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
702f0fb4 7402
14b57c7c 7403{"dcmpo", X(59,130), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
702f0fb4 7404
14b57c7c
AM
7405{"dtstex", X(59,162), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
7406{"dtstdc", Z(59,194), Z_MASK, POWER6, PPCVLE, {BF, FRA, DCM}},
7407{"dtstdg", Z(59,226), Z_MASK, POWER6, PPCVLE, {BF, FRA, DGM}},
7408
7409{"drintn", ZRC(59,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
7410{"drintn.", ZRC(59,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
7411
7412{"dctdp", XRC(59,258,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7413{"dctdp.", XRC(59,258,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7414
7415{"dctfix", XRC(59,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7416{"dctfix.", XRC(59,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7417
7418{"ddedpd", XRC(59,322,0), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
7419{"ddedpd.", XRC(59,322,1), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
7420
7421{"dxex", XRC(59,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7422{"dxex.", XRC(59,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7423
7424{"dsub", XRC(59,514,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7425{"dsub.", XRC(59,514,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7426
7427{"ddiv", XRC(59,546,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7428{"ddiv.", XRC(59,546,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7429
7430{"dcmpu", X(59,642), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
7431
7432{"dtstsf", X(59,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
7433{"dtstsfi", X(59,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRB}},
7434
7435{"drsp", XRC(59,770,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7436{"drsp.", XRC(59,770,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7437
7438{"dcffix", XRC(59,802,0), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7439{"dcffix.", XRC(59,802,1), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7440
7441{"denbcd", XRC(59,834,0), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
7442{"denbcd.", XRC(59,834,1), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
7443
7444{"fcfids", XRC(59,846,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7445{"fcfids.", XRC(59,846,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7446
7447{"diex", XRC(59,866,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7448{"diex.", XRC(59,866,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7449
7450{"fcfidus", XRC(59,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7451{"fcfidus.", XRC(59,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7452
7453{"xsaddsp", XX3(60,0), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7454{"xsmaddasp", XX3(60,1), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7455{"xxsldwi", XX3(60,2), XX3SHW_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, SHW}},
7456{"xscmpeqdp", XX3(60,3), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7457{"xsrsqrtesp", XX2(60,10), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7458{"xssqrtsp", XX2(60,11), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7459{"xxsel", XX4(60,3), XX4_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, XC6}},
7460{"xssubsp", XX3(60,8), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7461{"xsmaddmsp", XX3(60,9), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
98553ad3 7462{"xxspltd", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XAB6, DMEX}},
14b57c7c 7463{"xxmrghd", XX3(60,10), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
98553ad3 7464{"xxswapd", XX3(60,10)|(2<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
14b57c7c
AM
7465{"xxmrgld", XX3(60,10)|(3<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7466{"xxpermdi", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, DM}},
7467{"xscmpgtdp", XX3(60,11), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7468{"xsresp", XX2(60,26), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7469{"xsmulsp", XX3(60,16), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7470{"xsmsubasp", XX3(60,17), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7471{"xxmrghw", XX3(60,18), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7472{"xscmpgedp", XX3(60,19), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7473{"xsdivsp", XX3(60,24), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7474{"xsmsubmsp", XX3(60,25), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7475{"xxperm", XX3(60,26), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7476{"xsadddp", XX3(60,32), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7477{"xsmaddadp", XX3(60,33), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7478{"xscmpudp", XX3(60,35), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7479{"xscvdpuxws", XX2(60,72), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7480{"xsrdpi", XX2(60,73), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7481{"xsrsqrtedp", XX2(60,74), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7482{"xssqrtdp", XX2(60,75), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7483{"xssubdp", XX3(60,40), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7484{"xsmaddmdp", XX3(60,41), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7485{"xscmpodp", XX3(60,43), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7486{"xscvdpsxws", XX2(60,88), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7487{"xsrdpiz", XX2(60,89), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7488{"xsredp", XX2(60,90), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7489{"xsmuldp", XX3(60,48), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7490{"xsmsubadp", XX3(60,49), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7491{"xxmrglw", XX3(60,50), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7492{"xsrdpip", XX2(60,105), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7493{"xstsqrtdp", XX2(60,106), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
7494{"xsrdpic", XX2(60,107), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7495{"xsdivdp", XX3(60,56), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7496{"xsmsubmdp", XX3(60,57), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7497{"xxpermr", XX3(60,58), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7498{"xscmpexpdp", XX3(60,59), XX3BF_MASK, PPCVSX3, PPCVLE, {BF, XA6, XB6}},
7499{"xsrdpim", XX2(60,121), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7500{"xstdivdp", XX3(60,61), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7501{"xvaddsp", XX3(60,64), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7502{"xvmaddasp", XX3(60,65), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7503{"xvcmpeqsp", XX3RC(60,67,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7504{"xvcmpeqsp.", XX3RC(60,67,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7505{"xvcvspuxws", XX2(60,136), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7506{"xvrspi", XX2(60,137), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7507{"xvrsqrtesp", XX2(60,138), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7508{"xvsqrtsp", XX2(60,139), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7509{"xvsubsp", XX3(60,72), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7510{"xvmaddmsp", XX3(60,73), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7511{"xvcmpgtsp", XX3RC(60,75,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7512{"xvcmpgtsp.", XX3RC(60,75,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7513{"xvcvspsxws", XX2(60,152), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7514{"xvrspiz", XX2(60,153), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7515{"xvresp", XX2(60,154), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7516{"xvmulsp", XX3(60,80), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7517{"xvmsubasp", XX3(60,81), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7518{"xxspltw", XX2(60,164), XX2UIM_MASK, PPCVSX, PPCVLE, {XT6, XB6, UIM}},
7519{"xxextractuw", XX2(60,165), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
7520{"xvcmpgesp", XX3RC(60,83,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7521{"xvcmpgesp.", XX3RC(60,83,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7522{"xvcvuxwsp", XX2(60,168), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7523{"xvrspip", XX2(60,169), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7524{"xvtsqrtsp", XX2(60,170), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
7525{"xvrspic", XX2(60,171), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7526{"xvdivsp", XX3(60,88), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7527{"xvmsubmsp", XX3(60,89), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7528{"xxspltib", X(60,360), XX1_MASK|3<<19, PPCVSX3, PPCVLE, {XT6, IMM8}},
7529{"xxinsertw", XX2(60,181), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
7530{"xvcvsxwsp", XX2(60,184), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7531{"xvrspim", XX2(60,185), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7532{"xvtdivsp", XX3(60,93), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7533{"xvadddp", XX3(60,96), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7534{"xvmaddadp", XX3(60,97), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7535{"xvcmpeqdp", XX3RC(60,99,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7536{"xvcmpeqdp.", XX3RC(60,99,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7537{"xvcvdpuxws", XX2(60,200), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7538{"xvrdpi", XX2(60,201), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7539{"xvrsqrtedp", XX2(60,202), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7540{"xvsqrtdp", XX2(60,203), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7541{"xvsubdp", XX3(60,104), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7542{"xvmaddmdp", XX3(60,105), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7543{"xvcmpgtdp", XX3RC(60,107,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7544{"xvcmpgtdp.", XX3RC(60,107,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7545{"xvcvdpsxws", XX2(60,216), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7546{"xvrdpiz", XX2(60,217), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7547{"xvredp", XX2(60,218), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7548{"xvmuldp", XX3(60,112), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7549{"xvmsubadp", XX3(60,113), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7550{"xvcmpgedp", XX3RC(60,115,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7551{"xvcmpgedp.", XX3RC(60,115,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7552{"xvcvuxwdp", XX2(60,232), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7553{"xvrdpip", XX2(60,233), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7554{"xvtsqrtdp", XX2(60,234), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
7555{"xvrdpic", XX2(60,235), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7556{"xvdivdp", XX3(60,120), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7557{"xvmsubmdp", XX3(60,121), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7558{"xvcvsxwdp", XX2(60,248), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7559{"xvrdpim", XX2(60,249), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7560{"xvtdivdp", XX3(60,125), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7561{"xsmaxcdp", XX3(60,128), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7562{"xsnmaddasp", XX3(60,129), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7563{"xxland", XX3(60,130), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7564{"xscvdpsp", XX2(60,265), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7565{"xscvdpspn", XX2(60,267), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7566{"xsmincdp", XX3(60,136), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7567{"xsnmaddmsp", XX3(60,137), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7568{"xxlandc", XX3(60,138), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7569{"xsrsp", XX2(60,281), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7570{"xsmaxjdp", XX3(60,144), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7571{"xsnmsubasp", XX3(60,145), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7572{"xxlor", XX3(60,146), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7573{"xscvuxdsp", XX2(60,296), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7574{"xststdcsp", XX2(60,298), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
7575{"xsminjdp", XX3(60,152), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7576{"xsnmsubmsp", XX3(60,153), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7577{"xxlxor", XX3(60,154), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7578{"xscvsxdsp", XX2(60,312), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7579{"xsmaxdp", XX3(60,160), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7580{"xsnmaddadp", XX3(60,161), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7581{"xxlnor", XX3(60,162), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7582{"xscvdpuxds", XX2(60,328), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7583{"xscvspdp", XX2(60,329), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7584{"xscvspdpn", XX2(60,331), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7585{"xsmindp", XX3(60,168), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7586{"xsnmaddmdp", XX3(60,169), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7587{"xxlorc", XX3(60,170), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7588{"xscvdpsxds", XX2(60,344), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7589{"xsabsdp", XX2(60,345), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7590{"xsxexpdp", XX2VA(60,347,0),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
7591{"xsxsigdp", XX2VA(60,347,1),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
7592{"xscvhpdp", XX2VA(60,347,16),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7593{"xscvdphp", XX2VA(60,347,17),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7594{"xscpsgndp", XX3(60,176), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7595{"xsnmsubadp", XX3(60,177), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7596{"xxlnand", XX3(60,178), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7597{"xscvuxddp", XX2(60,360), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7598{"xsnabsdp", XX2(60,361), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7599{"xststdcdp", XX2(60,362), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
7600{"xsnmsubmdp", XX3(60,185), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7601{"xxleqv", XX3(60,186), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7602{"xscvsxddp", XX2(60,376), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7603{"xsnegdp", XX2(60,377), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7604{"xvmaxsp", XX3(60,192), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7605{"xvnmaddasp", XX3(60,193), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7606{"xvcvspuxds", XX2(60,392), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7607{"xvcvdpsp", XX2(60,393), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7608{"xvminsp", XX3(60,200), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7609{"xvnmaddmsp", XX3(60,201), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7610{"xvcvspsxds", XX2(60,408), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7611{"xvabssp", XX2(60,409), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
98553ad3 7612{"xvmovsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
14b57c7c
AM
7613{"xvcpsgnsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7614{"xvnmsubasp", XX3(60,209), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7615{"xvcvuxdsp", XX2(60,424), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7616{"xvnabssp", XX2(60,425), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7617{"xvtstdcsp", XX2(60,426), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
7618{"xviexpsp", XX3(60,216), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7619{"xvnmsubmsp", XX3(60,217), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7620{"xvcvsxdsp", XX2(60,440), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7621{"xvnegsp", XX2(60,441), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7622{"xvmaxdp", XX3(60,224), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7623{"xvnmaddadp", XX3(60,225), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7624{"xvcvdpuxds", XX2(60,456), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7625{"xvcvspdp", XX2(60,457), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7626{"xsiexpdp", X(60,918), XX1_MASK, PPCVSX3, PPCVLE, {XT6, RA, RB}},
7627{"xvmindp", XX3(60,232), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7628{"xvnmaddmdp", XX3(60,233), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7629{"xvcvdpsxds", XX2(60,472), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7630{"xvabsdp", XX2(60,473), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7631{"xvxexpdp", XX2VA(60,475,0),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7632{"xvxsigdp", XX2VA(60,475,1),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7633{"xxbrh", XX2VA(60,475,7),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7634{"xvxexpsp", XX2VA(60,475,8),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7635{"xvxsigsp", XX2VA(60,475,9),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7636{"xxbrw", XX2VA(60,475,15),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7637{"xxbrd", XX2VA(60,475,23),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7638{"xvcvhpsp", XX2VA(60,475,24),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7639{"xvcvsphp", XX2VA(60,475,25),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7640{"xxbrq", XX2VA(60,475,31),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
98553ad3 7641{"xvmovdp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
14b57c7c
AM
7642{"xvcpsgndp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7643{"xvnmsubadp", XX3(60,241), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7644{"xvcvuxddp", XX2(60,488), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7645{"xvnabsdp", XX2(60,489), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7646{"xvtstdcdp", XX2(60,490), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
7647{"xviexpdp", XX3(60,248), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7648{"xvnmsubmdp", XX3(60,249), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7649{"xvcvsxddp", XX2(60,504), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7650{"xvnegdp", XX2(60,505), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7651
7652{"psq_st", OP(60), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
7653{"stfq", OP(60), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
7654
7655{"lxv", DQX(61,1), DQX_MASK, PPCVSX3, PPCVLE, {XTQ6, DQ, RA0}},
7656{"stxv", DQX(61,5), DQX_MASK, PPCVSX3, PPCVLE, {XSQ6, DQ, RA0}},
7657{"stxsd", DSO(61,2), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
7658{"stxssp", DSO(61,3), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
73f07bff 7659{"stfdp", OP(61), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}},
14b57c7c
AM
7660{"psq_stu", OP(61), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
7661{"stfqu", OP(61), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
7662
7663{"std", DSO(62,0), DS_MASK, PPC64, PPCVLE, {RS, DS, RA0}},
7664{"stdu", DSO(62,1), DS_MASK, PPC64, PPCVLE, {RS, DS, RAS}},
73f07bff 7665{"stq", DSO(62,2), DS_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}},
14b57c7c
AM
7666
7667{"fcmpu", X(63,0), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
7668
73f07bff
AM
7669{"daddq", XRC(63,2,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7670{"daddq.", XRC(63,2,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
14b57c7c 7671
73f07bff
AM
7672{"dquaq", ZRC(63,3,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
7673{"dquaq.", ZRC(63,3,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
14b57c7c
AM
7674
7675{"xsaddqp", XRC(63,4,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7676{"xsaddqpo", XRC(63,4,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7677
7678{"xsrqpi", ZRC(63,5,0), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
7679{"xsrqpix", ZRC(63,5,1), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
7680
7681{"fcpsgn", XRC(63,8,0), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
7682{"fcpsgn.", XRC(63,8,1), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
7683
7684{"frsp", XRC(63,12,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7685{"frsp.", XRC(63,12,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7686
7687{"fctiw", XRC(63,14,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7688{"fcir", XRC(63,14,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7689{"fctiw.", XRC(63,14,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7690{"fcir.", XRC(63,14,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7691
7692{"fctiwz", XRC(63,15,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7693{"fcirz", XRC(63,15,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7694{"fctiwz.", XRC(63,15,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7695{"fcirz.", XRC(63,15,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7696
7697{"fdiv", A(63,18,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7698{"fd", A(63,18,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7699{"fdiv.", A(63,18,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7700{"fd.", A(63,18,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7701
7702{"fsub", A(63,20,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7703{"fs", A(63,20,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7704{"fsub.", A(63,20,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7705{"fs.", A(63,20,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7706
7707{"fadd", A(63,21,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7708{"fa", A(63,21,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7709{"fadd.", A(63,21,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7710{"fa.", A(63,21,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7711
7712{"fsqrt", A(63,22,0), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
7713{"fsqrt.", A(63,22,1), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
7714
7715{"fsel", A(63,23,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7716{"fsel.", A(63,23,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7717
7718{"fre", A(63,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7719{"fre", A(63,24,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
7720{"fre.", A(63,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7721{"fre.", A(63,24,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
1ed8e1e4 7722
14b57c7c
AM
7723{"fmul", A(63,25,0), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
7724{"fm", A(63,25,0), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
7725{"fmul.", A(63,25,1), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
7726{"fm.", A(63,25,1), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
252b5132 7727
14b57c7c
AM
7728{"frsqrte", A(63,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7729{"frsqrte", A(63,26,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
7730{"frsqrte.", A(63,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7731{"frsqrte.", A(63,26,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
252b5132 7732
14b57c7c
AM
7733{"fmsub", A(63,28,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7734{"fms", A(63,28,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7735{"fmsub.", A(63,28,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7736{"fms.", A(63,28,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7737
14b57c7c
AM
7738{"fmadd", A(63,29,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7739{"fma", A(63,29,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7740{"fmadd.", A(63,29,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7741{"fma.", A(63,29,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7742
14b57c7c
AM
7743{"fnmsub", A(63,30,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7744{"fnms", A(63,30,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7745{"fnmsub.", A(63,30,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7746{"fnms.", A(63,30,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7747
14b57c7c
AM
7748{"fnmadd", A(63,31,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7749{"fnma", A(63,31,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7750{"fnmadd.", A(63,31,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7751{"fnma.", A(63,31,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7752
14b57c7c 7753{"fcmpo", X(63,32), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
252b5132 7754
73f07bff
AM
7755{"dmulq", XRC(63,34,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7756{"dmulq.", XRC(63,34,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 7757
73f07bff
AM
7758{"drrndq", ZRC(63,35,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
7759{"drrndq.", ZRC(63,35,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
702f0fb4 7760
14b57c7c
AM
7761{"xsmulqp", XRC(63,36,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7762{"xsmulqpo", XRC(63,36,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7763
14b57c7c 7764{"xsrqpxp", Z(63,37), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
a680de9a 7765
96a86c01
AM
7766{"mtfsb1", XRC(63,38,0), XRARB_MASK, COM, PPCVLE, {BTF}},
7767{"mtfsb1.", XRC(63,38,1), XRARB_MASK, COM, PPCVLE, {BTF}},
252b5132 7768
14b57c7c
AM
7769{"fneg", XRC(63,40,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7770{"fneg.", XRC(63,40,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 7771
14b57c7c 7772{"mcrfs", X(63,64), XRB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
252b5132 7773
73f07bff
AM
7774{"dscliq", ZRC(63,66,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
7775{"dscliq.", ZRC(63,66,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
702f0fb4 7776
73f07bff
AM
7777{"dquaiq", ZRC(63,67,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
7778{"dquaiq.", ZRC(63,67,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
702f0fb4 7779
96a86c01
AM
7780{"mtfsb0", XRC(63,70,0), XRARB_MASK, COM, PPCVLE, {BTF}},
7781{"mtfsb0.", XRC(63,70,1), XRARB_MASK, COM, PPCVLE, {BTF}},
252b5132 7782
14b57c7c
AM
7783{"fmr", XRC(63,72,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7784{"fmr.", XRC(63,72,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 7785
73f07bff
AM
7786{"dscriq", ZRC(63,98,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
7787{"dscriq.", ZRC(63,98,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
702f0fb4 7788
73f07bff
AM
7789{"drintxq", ZRC(63,99,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
7790{"drintxq.", ZRC(63,99,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
702f0fb4 7791
14b57c7c 7792{"xscpsgnqp", X(63,100), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7793
14b57c7c 7794{"ftdiv", X(63,128), XBF_MASK, POWER7, PPCVLE, {BF, FRA, FRB}},
066be9f7 7795
14b57c7c 7796{"dcmpoq", X(63,130), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
702f0fb4 7797
14b57c7c 7798{"xscmpoqp", X(63,132), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 7799
14b57c7c
AM
7800{"mtfsfi", XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
7801{"mtfsfi", XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
7802{"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
7803{"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
252b5132 7804
14b57c7c
AM
7805{"fnabs", XRC(63,136,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7806{"fnabs.", XRC(63,136,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 7807
14b57c7c
AM
7808{"fctiwu", XRC(63,142,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7809{"fctiwu.", XRC(63,142,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7810{"fctiwuz", XRC(63,143,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7811{"fctiwuz.", XRC(63,143,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
066be9f7 7812
14b57c7c 7813{"ftsqrt", X(63,160), XBF_MASK|FRA_MASK, POWER7, PPCVLE, {BF, FRB}},
066be9f7 7814
14b57c7c 7815{"dtstexq", X(63,162), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
a680de9a 7816
14b57c7c 7817{"xscmpexpqp", X(63,164), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 7818
14b57c7c
AM
7819{"dtstdcq", Z(63,194), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DCM}},
7820{"dtstdgq", Z(63,226), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DGM}},
702f0fb4 7821
73f07bff
AM
7822{"drintnq", ZRC(63,227,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
7823{"drintnq.", ZRC(63,227,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
702f0fb4 7824
73f07bff
AM
7825{"dctqpq", XRC(63,258,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
7826{"dctqpq.", XRC(63,258,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
702f0fb4 7827
14b57c7c
AM
7828{"fabs", XRC(63,264,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7829{"fabs.", XRC(63,264,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 7830
14b57c7c
AM
7831{"dctfixq", XRC(63,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
7832{"dctfixq.", XRC(63,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
702f0fb4 7833
73f07bff
AM
7834{"ddedpdq", XRC(63,322,0), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
7835{"ddedpdq.", XRC(63,322,1), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
702f0fb4 7836
14b57c7c
AM
7837{"dxexq", XRC(63,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
7838{"dxexq.", XRC(63,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
702f0fb4 7839
14b57c7c
AM
7840{"xsmaddqp", XRC(63,388,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7841{"xsmaddqpo", XRC(63,388,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7842
14b57c7c
AM
7843{"frin", XRC(63,392,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
7844{"frin.", XRC(63,392,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 7845
14b57c7c
AM
7846{"xsmsubqp", XRC(63,420,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7847{"xsmsubqpo", XRC(63,420,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7848
14b57c7c
AM
7849{"friz", XRC(63,424,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
7850{"friz.", XRC(63,424,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 7851
14b57c7c
AM
7852{"xsnmaddqp", XRC(63,452,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7853{"xsnmaddqpo", XRC(63,452,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7854
14b57c7c
AM
7855{"frip", XRC(63,456,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
7856{"frip.", XRC(63,456,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 7857
14b57c7c
AM
7858{"xsnmsubqp", XRC(63,484,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7859{"xsnmsubqpo", XRC(63,484,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7860
14b57c7c
AM
7861{"frim", XRC(63,488,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
7862{"frim.", XRC(63,488,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
ce7a772b 7863
73f07bff
AM
7864{"dsubq", XRC(63,514,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7865{"dsubq.", XRC(63,514,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 7866
14b57c7c
AM
7867{"xssubqp", XRC(63,516,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7868{"xssubqpo", XRC(63,516,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7869
73f07bff
AM
7870{"ddivq", XRC(63,546,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7871{"ddivq.", XRC(63,546,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 7872
14b57c7c
AM
7873{"xsdivqp", XRC(63,548,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7874{"xsdivqpo", XRC(63,548,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7875
14b57c7c
AM
7876{"mffs", XRC(63,583,0), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
7877{"mffs.", XRC(63,583,1), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
252b5132 7878
6fd3a02d
PB
7879{"mffsce", XMMF(63,583,0,1), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
7880{"mffscdrn", XMMF(63,583,2,4), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
7881{"mffscdrni", XMMF(63,583,2,5), XMMF_MASK|(3<<14), POWER9, PPCVLE, {FRT, DRM}},
7882{"mffscrn", XMMF(63,583,2,6), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
7883{"mffscrni", XMMF(63,583,2,7), XMMF_MASK|(7<<13), POWER9, PPCVLE, {FRT, RM}},
7884{"mffsl", XMMF(63,583,3,0), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
7885
14b57c7c 7886{"dcmpuq", X(63,642), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
702f0fb4 7887
14b57c7c 7888{"xscmpuqp", X(63,644), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 7889
14b57c7c
AM
7890{"dtstsfq", X(63,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRBp}},
7891{"dtstsfiq", X(63,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRBp}},
a680de9a 7892
14b57c7c 7893{"xststdcqp", X(63,708), X_MASK, PPCVSX3, PPCVLE, {BF, VB, DCMX}},
702f0fb4 7894
14b57c7c
AM
7895{"mtfsf", XFL(63,711,0), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
7896{"mtfsf", XFL(63,711,0), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
7897{"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
7898{"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
252b5132 7899
73f07bff
AM
7900{"drdpq", XRC(63,770,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
7901{"drdpq.", XRC(63,770,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
702f0fb4 7902
73f07bff
AM
7903{"dcffixq", XRC(63,802,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
7904{"dcffixq.", XRC(63,802,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
702f0fb4 7905
14b57c7c
AM
7906{"xsabsqp", XVA(63,804,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7907{"xsxexpqp", XVA(63,804,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7908{"xsnabsqp", XVA(63,804,8), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7909{"xsnegqp", XVA(63,804,16), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7910{"xsxsigqp", XVA(63,804,18), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7911{"xssqrtqp", XVARC(63,804,27,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7912{"xssqrtqpo", XVARC(63,804,27,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
a680de9a 7913
14b57c7c
AM
7914{"fctid", XRC(63,814,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7915{"fctid", XRC(63,814,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
7916{"fctid.", XRC(63,814,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7917{"fctid.", XRC(63,814,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 7918
14b57c7c
AM
7919{"fctidz", XRC(63,815,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7920{"fctidz", XRC(63,815,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
7921{"fctidz.", XRC(63,815,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7922{"fctidz.", XRC(63,815,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 7923
73f07bff
AM
7924{"denbcdq", XRC(63,834,0), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
7925{"denbcdq.", XRC(63,834,1), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
702f0fb4 7926
14b57c7c
AM
7927{"xscvqpuwz", XVA(63,836,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7928{"xscvudqp", XVA(63,836,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7929{"xscvqpswz", XVA(63,836,9), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7930{"xscvsdqp", XVA(63,836,10), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7931{"xscvqpudz", XVA(63,836,17), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7932{"xscvqpdp", XVARC(63,836,20,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7933{"xscvqpdpo", XVARC(63,836,20,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7934{"xscvdpqp", XVA(63,836,22), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7935{"xscvqpsdz", XVA(63,836,25), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
a680de9a 7936
14b57c7c 7937{"fmrgow", X(63,838), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
c0637f3a 7938
14b57c7c
AM
7939{"fcfid", XRC(63,846,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7940{"fcfid", XRC(63,846,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
7941{"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7942{"fcfid.", XRC(63,846,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 7943
73f07bff
AM
7944{"diexq", XRC(63,866,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
7945{"diexq.", XRC(63,866,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
702f0fb4 7946
14b57c7c 7947{"xsiexpqp", X(63,868), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7948
14b57c7c
AM
7949{"fctidu", XRC(63,942,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7950{"fctidu.", XRC(63,942,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
066be9f7 7951
14b57c7c
AM
7952{"fctiduz", XRC(63,943,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7953{"fctiduz.", XRC(63,943,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
066be9f7 7954
14b57c7c 7955{"fmrgew", X(63,966), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
c0637f3a 7956
14b57c7c
AM
7957{"fcfidu", XRC(63,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7958{"fcfidu.", XRC(63,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
252b5132
RH
7959};
7960
2ceb7719 7961const unsigned int powerpc_num_opcodes =
252b5132
RH
7962 sizeof (powerpc_opcodes) / sizeof (powerpc_opcodes[0]);
7963\f
dd7efa79
PB
7964/* The opcode table for 8-byte prefix instructions.
7965
7966 The format of this opcode table is the same as the main opcode table. */
7967
7968const struct powerpc_opcode prefix_opcodes[] = {
7969{"pnop", PMRR, PREFIX_MASK, POWERXX, 0, {0}},
8acf1435
PB
7970{"pli", PMLS|OP(14), P_DRAPCREL_MASK, POWERXX, 0, {RT, SI34}},
7971{"paddi", PMLS|OP(14), P_D_MASK, POWERXX, 0, {RT, RA0, SI34, PCREL0}},
7972{"psubi", PMLS|OP(14), P_D_MASK, POWERXX, 0, {RT, RA0, NSI34, PCREL0}},
7973{"pla", PMLS|OP(14), P_D_MASK, POWERXX, 0, {RT, D34, PRA0, PCREL}},
7974{"plwz", PMLS|OP(32), P_D_MASK, POWERXX, 0, {RT, D34, PRA0, PCREL}},
7975{"plbz", PMLS|OP(34), P_D_MASK, POWERXX, 0, {RT, D34, PRA0, PCREL}},
7976{"pstw", PMLS|OP(36), P_D_MASK, POWERXX, 0, {RS, D34, PRA0, PCREL}},
7977{"pstb", PMLS|OP(38), P_D_MASK, POWERXX, 0, {RS, D34, PRA0, PCREL}},
7978{"plhz", PMLS|OP(40), P_D_MASK, POWERXX, 0, {RT, D34, PRA0, PCREL}},
7979{"plwa", P8LS|OP(41), P_D_MASK, POWERXX, 0, {RT, D34, PRA0, PCREL}},
7980{"plxsd", P8LS|OP(42), P_D_MASK, POWERXX, 0, {VD, D34, PRA0, PCREL}},
7981{"plha", PMLS|OP(42), P_D_MASK, POWERXX, 0, {RT, D34, PRA0, PCREL}},
7982{"plxssp", P8LS|OP(43), P_D_MASK, POWERXX, 0, {VD, D34, PRA0, PCREL}},
7983{"psth", PMLS|OP(44), P_D_MASK, POWERXX, 0, {RS, D34, PRA0, PCREL}},
7984{"pstxsd", P8LS|OP(46), P_D_MASK, POWERXX, 0, {VS, D34, PRA0, PCREL}},
7985{"pstxssp", P8LS|OP(47), P_D_MASK, POWERXX, 0, {VS, D34, PRA0, PCREL}},
7986{"plfs", PMLS|OP(48), P_D_MASK, POWERXX, 0, {FRT, D34, PRA0, PCREL}},
7987{"plxv", P8LS|OP(50), P_D_MASK&~OP(1), POWERXX, 0, {XTOP, D34, PRA0, PCREL}},
7988{"plfd", PMLS|OP(50), P_D_MASK, POWERXX, 0, {FRT, D34, PRA0, PCREL}},
7989{"pstfs", PMLS|OP(52), P_D_MASK, POWERXX, 0, {FRS, D34, PRA0, PCREL}},
7990{"pstxv", P8LS|OP(54), P_D_MASK&~OP(1), POWERXX, 0, {XTOP, D34, PRA0, PCREL}},
7991{"pstfd", PMLS|OP(54), P_D_MASK, POWERXX, 0, {FRS, D34, PRA0, PCREL}},
7992{"plq", P8LS|OP(56), P_D_MASK, POWERXX, 0, {RTQ, D34, PRAQ, PCREL}},
7993{"pld", P8LS|OP(57), P_D_MASK, POWERXX, 0, {RT, D34, PRA0, PCREL}},
7994{"pstq", P8LS|OP(60), P_D_MASK, POWERXX, 0, {RSQ, D34, PRA0, PCREL}},
7995{"pstd", P8LS|OP(61), P_D_MASK, POWERXX, 0, {RS, D34, PRA0, PCREL}},
dd7efa79
PB
7996};
7997
7998const unsigned int prefix_num_opcodes =
7999 sizeof (prefix_opcodes) / sizeof (prefix_opcodes[0]);
8000\f
b9c361e0
JL
8001/* The VLE opcode table.
8002
8003 The format of this opcode table is the same as the main opcode table. */
8004
8005const struct powerpc_opcode vle_opcodes[] = {
14b57c7c
AM
8006{"se_illegal", C(0), C_MASK, PPCVLE, 0, {}},
8007{"se_isync", C(1), C_MASK, PPCVLE, 0, {}},
8008{"se_sc", C(2), C_MASK, PPCVLE, 0, {}},
8009{"se_blr", C_LK(2,0), C_LK_MASK, PPCVLE, 0, {}},
8010{"se_blrl", C_LK(2,1), C_LK_MASK, PPCVLE, 0, {}},
8011{"se_bctr", C_LK(3,0), C_LK_MASK, PPCVLE, 0, {}},
8012{"se_bctrl", C_LK(3,1), C_LK_MASK, PPCVLE, 0, {}},
8013{"se_rfi", C(8), C_MASK, PPCVLE, 0, {}},
8014{"se_rfci", C(9), C_MASK, PPCVLE, 0, {}},
8015{"se_rfdi", C(10), C_MASK, PPCVLE, 0, {}},
8016{"se_rfmci", C(11), C_MASK, PPCRFMCI|PPCVLE, 0, {}},
a8cc8a54 8017{"se_rfgi", C(12), C_MASK, PPCVLE, 0, {}},
14b57c7c
AM
8018{"se_not", SE_R(0,2), SE_R_MASK, PPCVLE, 0, {RX}},
8019{"se_neg", SE_R(0,3), SE_R_MASK, PPCVLE, 0, {RX}},
8020{"se_mflr", SE_R(0,8), SE_R_MASK, PPCVLE, 0, {RX}},
8021{"se_mtlr", SE_R(0,9), SE_R_MASK, PPCVLE, 0, {RX}},
8022{"se_mfctr", SE_R(0,10), SE_R_MASK, PPCVLE, 0, {RX}},
8023{"se_mtctr", SE_R(0,11), SE_R_MASK, PPCVLE, 0, {RX}},
8024{"se_extzb", SE_R(0,12), SE_R_MASK, PPCVLE, 0, {RX}},
8025{"se_extsb", SE_R(0,13), SE_R_MASK, PPCVLE, 0, {RX}},
8026{"se_extzh", SE_R(0,14), SE_R_MASK, PPCVLE, 0, {RX}},
8027{"se_extsh", SE_R(0,15), SE_R_MASK, PPCVLE, 0, {RX}},
8028{"se_mr", SE_RR(0,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8029{"se_mtar", SE_RR(0,2), SE_RR_MASK, PPCVLE, 0, {ARX, RY}},
8030{"se_mfar", SE_RR(0,3), SE_RR_MASK, PPCVLE, 0, {RX, ARY}},
8031{"se_add", SE_RR(1,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8032{"se_mullw", SE_RR(1,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8033{"se_sub", SE_RR(1,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8034{"se_subf", SE_RR(1,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8035{"se_cmp", SE_RR(3,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8036{"se_cmpl", SE_RR(3,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8037{"se_cmph", SE_RR(3,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8038{"se_cmphl", SE_RR(3,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8039
e3c2f928
AF
8040/* by major opcode */
8041{"zvaddih", VX(4, 0x200), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
8042{"zvsubifh", VX(4, 0x201), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
8043{"zvaddh", VX(4, 0x204), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8044{"zvsubfh", VX(4, 0x205), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8045{"zvaddsubfh", VX(4, 0x206), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8046{"zvsubfaddh", VX(4, 0x207), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8047{"zvaddhx", VX(4, 0x20C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8048{"zvsubfhx", VX(4, 0x20D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8049{"zvaddsubfhx", VX(4, 0x20E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8050{"zvsubfaddhx", VX(4, 0x20F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8051{"zaddwus", VX(4, 0x210), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8052{"zsubfwus", VX(4, 0x211), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8053{"zaddwss", VX(4, 0x212), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8054{"zsubfwss", VX(4, 0x213), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8055{"zvaddhus", VX(4, 0x214), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8056{"zvsubfhus", VX(4, 0x215), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8057{"zvaddhss", VX(4, 0x216), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8058{"zvsubfhss", VX(4, 0x217), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8059{"zvaddsubfhss", VX(4, 0x21A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8060{"zvsubfaddhss", VX(4, 0x21B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8061{"zvaddhxss", VX(4, 0x21C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8062{"zvsubfhxss", VX(4, 0x21D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8063{"zvaddsubfhxss", VX(4, 0x21E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8064{"zvsubfaddhxss", VX(4, 0x21F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8065{"zaddheuw", VX(4, 0x220), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8066{"zsubfheuw", VX(4, 0x221), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8067{"zaddhesw", VX(4, 0x222), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8068{"zsubfhesw", VX(4, 0x223), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8069{"zaddhouw", VX(4, 0x224), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8070{"zsubfhouw", VX(4, 0x225), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8071{"zaddhosw", VX(4, 0x226), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8072{"zsubfhosw", VX(4, 0x227), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8073{"zvmergehih", VX(4, 0x22C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8074{"zvmergeloh", VX(4, 0x22D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8075{"zvmergehiloh", VX(4, 0x22E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8076{"zvmergelohih", VX(4, 0x22F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8077{"zvcmpgthu", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
8078{"zvcmpgths", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
8079{"zvcmplthu", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
8080{"zvcmplths", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
8081{"zvcmpeqh", VX(4, 0x232), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
8082{"zpkswgshfrs", VX(4, 0x238), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8083{"zpkswgswfrs", VX(4, 0x239), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8084{"zvpkshgwshfrs", VX(4, 0x23A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8085{"zvpkswshfrs", VX(4, 0x23B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8086{"zvpkswuhs", VX(4, 0x23C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8087{"zvpkswshs", VX(4, 0x23D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8088{"zvpkuwuhs", VX(4, 0x23E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8089{"zvsplatih", VX_LSP(4, 0x23F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}},
8090{"zvsplatfih", VX_LSP(4, 0xA3F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}},
8091{"zcntlsw", VX_LSP(4, 0x2A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8092{"zvcntlzh", VX_LSP(4, 0x323F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8093{"zvcntlsh", VX_LSP(4, 0x3A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8094{"znegws", VX_LSP(4, 0x4A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8095{"zvnegh", VX_LSP(4, 0x523F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8096{"zvneghs", VX_LSP(4, 0x5A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8097{"zvnegho", VX_LSP(4, 0x623F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8098{"zvneghos", VX_LSP(4, 0x6A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8099{"zrndwh", VX_LSP(4, 0x823F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8100{"zrndwhss", VX_LSP(4, 0x8A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8101{"zvabsh", VX_LSP(4, 0xA23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8102{"zvabshs", VX_LSP(4, 0xAA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8103{"zabsw", VX_LSP(4, 0xB23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8104{"zabsws", VX_LSP(4, 0xBA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8105{"zsatswuw", VX_LSP(4, 0xC23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8106{"zsatuwsw", VX_LSP(4, 0xCA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8107{"zsatswuh", VX_LSP(4, 0xD23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8108{"zsatswsh", VX_LSP(4, 0xDA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8109{"zvsatshuh", VX_LSP(4, 0xE23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8110{"zvsatuhsh", VX_LSP(4, 0xEA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8111{"zsatuwuh", VX_LSP(4, 0xF23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8112{"zsatuwsh", VX_LSP(4, 0xFA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8113{"zsatsduw", VX(4, 0x260), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8114{"zsatsdsw", VX(4, 0x261), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8115{"zsatuduw", VX(4, 0x262), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8116{"zvselh", VX(4, 0x264), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8117{"zxtrw", VX(4, 0x264), VX_LSP_OFF_MASK, PPCLSP, 0, {RD, RA, RB, VX_OFF}},
8118{"zbrminc", VX(4, 0x268), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8119{"zcircinc", VX(4, 0x269), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8120{"zdivwsf", VX(4, 0x26B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8121{"zvsrhu", VX(4, 0x270), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8122{"zvsrhs", VX(4, 0x271), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8123{"zvsrhiu", VX(4, 0x272), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8124{"zvsrhis", VX(4, 0x273), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8125{"zvslh", VX(4, 0x274), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8126{"zvrlh", VX(4, 0x275), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8127{"zvslhi", VX(4, 0x276), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8128{"zvrlhi", VX(4, 0x277), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8129{"zvslhus", VX(4, 0x278), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8130{"zvslhss", VX(4, 0x279), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8131{"zvslhius", VX(4, 0x27A), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8132{"zvslhiss", VX(4, 0x27B), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8133{"zslwus", VX(4, 0x27C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8134{"zslwss", VX(4, 0x27D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8135{"zslwius", VX(4, 0x27E), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
8136{"zslwiss", VX(4, 0x27F), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
8137{"zaddwgui", VX(4, 0x460), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8138{"zsubfwgui", VX(4, 0x461), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8139{"zaddd", VX(4, 0x462), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8140{"zsubfd", VX(4, 0x463), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8141{"zvaddsubfw", VX(4, 0x464), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8142{"zvsubfaddw", VX(4, 0x465), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8143{"zvaddw", VX(4, 0x466), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8144{"zvsubfw", VX(4, 0x467), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8145{"zaddwgsi", VX(4, 0x468), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8146{"zsubfwgsi", VX(4, 0x469), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8147{"zadddss", VX(4, 0x46A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8148{"zsubfdss", VX(4, 0x46B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8149{"zvaddsubfwss", VX(4, 0x46C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8150{"zvsubfaddwss", VX(4, 0x46D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8151{"zvaddwss", VX(4, 0x46E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8152{"zvsubfwss", VX(4, 0x46F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8153{"zaddwgsf", VX(4, 0x470), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8154{"zsubfwgsf", VX(4, 0x471), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8155{"zadddus", VX(4, 0x472), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8156{"zsubfdus", VX(4, 0x473), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8157{"zvaddwus", VX(4, 0x476), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8158{"zvsubfwus", VX(4, 0x477), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8159{"zvunpkhgwsf", VX_LSP(4, 0x478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
8160{"zvunpkhsf", VX_LSP(4, 0xC78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
8161{"zvunpkhui", VX_LSP(4, 0x1478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
8162{"zvunpkhsi", VX_LSP(4, 0x1C78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
8163{"zunpkwgsf", VX_LSP(4, 0x2478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
8164{"zvdotphgwasmf", VX(4, 0x488), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8165{"zvdotphgwasmfr", VX(4, 0x489), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8166{"zvdotphgwasmfaa", VX(4, 0x48A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8167{"zvdotphgwasmfraa", VX(4, 0x48B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8168{"zvdotphgwasmfan", VX(4, 0x48C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8169{"zvdotphgwasmfran", VX(4, 0x48D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8170{"zvmhulgwsmf", VX(4, 0x490), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8171{"zvmhulgwsmfr", VX(4, 0x491), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8172{"zvmhulgwsmfaa", VX(4, 0x492), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8173{"zvmhulgwsmfraa", VX(4, 0x493), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8174{"zvmhulgwsmfan", VX(4, 0x494), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8175{"zvmhulgwsmfran", VX(4, 0x495), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8176{"zvmhulgwsmfanp", VX(4, 0x496), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8177{"zvmhulgwsmfranp", VX(4, 0x497), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8178{"zmhegwsmf", VX(4, 0x498), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8179{"zmhegwsmfr", VX(4, 0x499), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8180{"zmhegwsmfaa", VX(4, 0x49A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8181{"zmhegwsmfraa", VX(4, 0x49B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8182{"zmhegwsmfan", VX(4, 0x49C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8183{"zmhegwsmfran", VX(4, 0x49D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8184{"zvdotphxgwasmf", VX(4, 0x4A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8185{"zvdotphxgwasmfr", VX(4, 0x4A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8186{"zvdotphxgwasmfaa", VX(4, 0x4AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8187{"zvdotphxgwasmfraa", VX(4, 0x4AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8188{"zvdotphxgwasmfan", VX(4, 0x4AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8189{"zvdotphxgwasmfran", VX(4, 0x4AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8190{"zvmhllgwsmf", VX(4, 0x4B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8191{"zvmhllgwsmfr", VX(4, 0x4B1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8192{"zvmhllgwsmfaa", VX(4, 0x4B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8193{"zvmhllgwsmfraa", VX(4, 0x4B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8194{"zvmhllgwsmfan", VX(4, 0x4B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8195{"zvmhllgwsmfran", VX(4, 0x4B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8196{"zvmhllgwsmfanp", VX(4, 0x4B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8197{"zvmhllgwsmfranp", VX(4, 0x4B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8198{"zmheogwsmf", VX(4, 0x4B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8199{"zmheogwsmfr", VX(4, 0x4B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8200{"zmheogwsmfaa", VX(4, 0x4BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8201{"zmheogwsmfraa", VX(4, 0x4BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8202{"zmheogwsmfan", VX(4, 0x4BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8203{"zmheogwsmfran", VX(4, 0x4BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8204{"zvdotphgwssmf", VX(4, 0x4C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8205{"zvdotphgwssmfr", VX(4, 0x4C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8206{"zvdotphgwssmfaa", VX(4, 0x4CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8207{"zvdotphgwssmfraa", VX(4, 0x4CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8208{"zvdotphgwssmfan", VX(4, 0x4CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8209{"zvdotphgwssmfran", VX(4, 0x4CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8210{"zvmhuugwsmf", VX(4, 0x4D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8211{"zvmhuugwsmfr", VX(4, 0x4D1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8212{"zvmhuugwsmfaa", VX(4, 0x4D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8213{"zvmhuugwsmfraa", VX(4, 0x4D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8214{"zvmhuugwsmfan", VX(4, 0x4D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8215{"zvmhuugwsmfran", VX(4, 0x4D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8216{"zvmhuugwsmfanp", VX(4, 0x4D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8217{"zvmhuugwsmfranp", VX(4, 0x4D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8218{"zmhogwsmf", VX(4, 0x4D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8219{"zmhogwsmfr", VX(4, 0x4D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8220{"zmhogwsmfaa", VX(4, 0x4DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8221{"zmhogwsmfraa", VX(4, 0x4DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8222{"zmhogwsmfan", VX(4, 0x4DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8223{"zmhogwsmfran", VX(4, 0x4DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8224{"zvmhxlgwsmf", VX(4, 0x4F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8225{"zvmhxlgwsmfr", VX(4, 0x4F1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8226{"zvmhxlgwsmfaa", VX(4, 0x4F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8227{"zvmhxlgwsmfraa", VX(4, 0x4F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8228{"zvmhxlgwsmfan", VX(4, 0x4F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8229{"zvmhxlgwsmfran", VX(4, 0x4F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8230{"zvmhxlgwsmfanp", VX(4, 0x4F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8231{"zvmhxlgwsmfranp", VX(4, 0x4F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8232{"zmhegui", VX(4, 0x500), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8233{"zvdotphgaui", VX(4, 0x501), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8234{"zmheguiaa", VX(4, 0x502), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8235{"zvdotphgauiaa", VX(4, 0x503), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8236{"zmheguian", VX(4, 0x504), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8237{"zvdotphgauian", VX(4, 0x505), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8238{"zmhegsi", VX(4, 0x508), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8239{"zvdotphgasi", VX(4, 0x509), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8240{"zmhegsiaa", VX(4, 0x50A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8241{"zvdotphgasiaa", VX(4, 0x50B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8242{"zmhegsian", VX(4, 0x50C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8243{"zvdotphgasian", VX(4, 0x50D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8244{"zmhegsui", VX(4, 0x510), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8245{"zvdotphgasui", VX(4, 0x511), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8246{"zmhegsuiaa", VX(4, 0x512), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8247{"zvdotphgasuiaa", VX(4, 0x513), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8248{"zmhegsuian", VX(4, 0x514), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8249{"zvdotphgasuian", VX(4, 0x515), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8250{"zmhegsmf", VX(4, 0x518), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8251{"zvdotphgasmf", VX(4, 0x519), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8252{"zmhegsmfaa", VX(4, 0x51A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8253{"zvdotphgasmfaa", VX(4, 0x51B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8254{"zmhegsmfan", VX(4, 0x51C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8255{"zvdotphgasmfan", VX(4, 0x51D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8256{"zmheogui", VX(4, 0x520), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8257{"zvdotphxgaui", VX(4, 0x521), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8258{"zmheoguiaa", VX(4, 0x522), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8259{"zvdotphxgauiaa", VX(4, 0x523), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8260{"zmheoguian", VX(4, 0x524), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8261{"zvdotphxgauian", VX(4, 0x525), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8262{"zmheogsi", VX(4, 0x528), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8263{"zvdotphxgasi", VX(4, 0x529), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8264{"zmheogsiaa", VX(4, 0x52A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8265{"zvdotphxgasiaa", VX(4, 0x52B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8266{"zmheogsian", VX(4, 0x52C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8267{"zvdotphxgasian", VX(4, 0x52D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8268{"zmheogsui", VX(4, 0x530), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8269{"zvdotphxgasui", VX(4, 0x531), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8270{"zmheogsuiaa", VX(4, 0x532), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8271{"zvdotphxgasuiaa", VX(4, 0x533), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8272{"zmheogsuian", VX(4, 0x534), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8273{"zvdotphxgasuian", VX(4, 0x535), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8274{"zmheogsmf", VX(4, 0x538), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8275{"zvdotphxgasmf", VX(4, 0x539), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8276{"zmheogsmfaa", VX(4, 0x53A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8277{"zvdotphxgasmfaa", VX(4, 0x53B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8278{"zmheogsmfan", VX(4, 0x53C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8279{"zvdotphxgasmfan", VX(4, 0x53D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8280{"zmhogui", VX(4, 0x540), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8281{"zvdotphgsui", VX(4, 0x541), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8282{"zmhoguiaa", VX(4, 0x542), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8283{"zvdotphgsuiaa", VX(4, 0x543), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8284{"zmhoguian", VX(4, 0x544), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8285{"zvdotphgsuian", VX(4, 0x545), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8286{"zmhogsi", VX(4, 0x548), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8287{"zvdotphgssi", VX(4, 0x549), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8288{"zmhogsiaa", VX(4, 0x54A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8289{"zvdotphgssiaa", VX(4, 0x54B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8290{"zmhogsian", VX(4, 0x54C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8291{"zvdotphgssian", VX(4, 0x54D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8292{"zmhogsui", VX(4, 0x550), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8293{"zvdotphgssui", VX(4, 0x551), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8294{"zmhogsuiaa", VX(4, 0x552), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8295{"zvdotphgssuiaa", VX(4, 0x553), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8296{"zmhogsuian", VX(4, 0x554), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8297{"zvdotphgssuian", VX(4, 0x555), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8298{"zmhogsmf", VX(4, 0x558), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8299{"zvdotphgssmf", VX(4, 0x559), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8300{"zmhogsmfaa", VX(4, 0x55A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8301{"zvdotphgssmfaa", VX(4, 0x55B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8302{"zmhogsmfan", VX(4, 0x55C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8303{"zvdotphgssmfan", VX(4, 0x55D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8304{"zmwgui", VX(4, 0x560), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8305{"zmwguiaa", VX(4, 0x562), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8306{"zmwguiaas", VX(4, 0x563), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8307{"zmwguian", VX(4, 0x564), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8308{"zmwguians", VX(4, 0x565), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8309{"zmwgsi", VX(4, 0x568), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8310{"zmwgsiaa", VX(4, 0x56A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8311{"zmwgsiaas", VX(4, 0x56B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8312{"zmwgsian", VX(4, 0x56C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8313{"zmwgsians", VX(4, 0x56D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8314{"zmwgsui", VX(4, 0x570), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8315{"zmwgsuiaa", VX(4, 0x572), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8316{"zmwgsuiaas", VX(4, 0x573), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8317{"zmwgsuian", VX(4, 0x574), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8318{"zmwgsuians", VX(4, 0x575), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8319{"zmwgsmf", VX(4, 0x578), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8320{"zmwgsmfr", VX(4, 0x579), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8321{"zmwgsmfaa", VX(4, 0x57A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8322{"zmwgsmfraa", VX(4, 0x57B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8323{"zmwgsmfan", VX(4, 0x57C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8324{"zmwgsmfran", VX(4, 0x57D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8325{"zvmhului", VX(4, 0x580), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8326{"zvmhuluiaa", VX(4, 0x582), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8327{"zvmhuluiaas", VX(4, 0x583), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8328{"zvmhuluian", VX(4, 0x584), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8329{"zvmhuluians", VX(4, 0x585), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8330{"zvmhuluianp", VX(4, 0x586), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8331{"zvmhuluianps", VX(4, 0x587), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8332{"zvmhulsi", VX(4, 0x588), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8333{"zvmhulsiaa", VX(4, 0x58A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8334{"zvmhulsiaas", VX(4, 0x58B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8335{"zvmhulsian", VX(4, 0x58C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8336{"zvmhulsians", VX(4, 0x58D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8337{"zvmhulsianp", VX(4, 0x58E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8338{"zvmhulsianps", VX(4, 0x58F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8339{"zvmhulsui", VX(4, 0x590), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8340{"zvmhulsuiaa", VX(4, 0x592), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8341{"zvmhulsuiaas", VX(4, 0x593), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8342{"zvmhulsuian", VX(4, 0x594), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8343{"zvmhulsuians", VX(4, 0x595), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8344{"zvmhulsuianp", VX(4, 0x596), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8345{"zvmhulsuianps", VX(4, 0x597), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8346{"zvmhulsf", VX(4, 0x598), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8347{"zvmhulsfr", VX(4, 0x599), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8348{"zvmhulsfaas", VX(4, 0x59A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8349{"zvmhulsfraas", VX(4, 0x59B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8350{"zvmhulsfans", VX(4, 0x59C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8351{"zvmhulsfrans", VX(4, 0x59D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8352{"zvmhulsfanps", VX(4, 0x59E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8353{"zvmhulsfranps", VX(4, 0x59F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8354{"zvmhllui", VX(4, 0x5A0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8355{"zvmhlluiaa", VX(4, 0x5A2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8356{"zvmhlluiaas", VX(4, 0x5A3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8357{"zvmhlluian", VX(4, 0x5A4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8358{"zvmhlluians", VX(4, 0x5A5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8359{"zvmhlluianp", VX(4, 0x5A6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8360{"zvmhlluianps", VX(4, 0x5A7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8361{"zvmhllsi", VX(4, 0x5A8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8362{"zvmhllsiaa", VX(4, 0x5AA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8363{"zvmhllsiaas", VX(4, 0x5AB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8364{"zvmhllsian", VX(4, 0x5AC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8365{"zvmhllsians", VX(4, 0x5AD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8366{"zvmhllsianp", VX(4, 0x5AE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8367{"zvmhllsianps", VX(4, 0x5AF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8368{"zvmhllsui", VX(4, 0x5B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8369{"zvmhllsuiaa", VX(4, 0x5B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8370{"zvmhllsuiaas", VX(4, 0x5B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8371{"zvmhllsuian", VX(4, 0x5B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8372{"zvmhllsuians", VX(4, 0x5B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8373{"zvmhllsuianp", VX(4, 0x5B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8374{"zvmhllsuianps", VX(4, 0x5B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8375{"zvmhllsf", VX(4, 0x5B8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8376{"zvmhllsfr", VX(4, 0x5B9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8377{"zvmhllsfaas", VX(4, 0x5BA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8378{"zvmhllsfraas", VX(4, 0x5BB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8379{"zvmhllsfans", VX(4, 0x5BC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8380{"zvmhllsfrans", VX(4, 0x5BD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8381{"zvmhllsfanps", VX(4, 0x5BE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8382{"zvmhllsfranps", VX(4, 0x5BF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8383{"zvmhuuui", VX(4, 0x5C0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8384{"zvmhuuuiaa", VX(4, 0x5C2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8385{"zvmhuuuiaas", VX(4, 0x5C3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8386{"zvmhuuuian", VX(4, 0x5C4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8387{"zvmhuuuians", VX(4, 0x5C5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8388{"zvmhuuuianp", VX(4, 0x5C6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8389{"zvmhuuuianps", VX(4, 0x5C7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8390{"zvmhuusi", VX(4, 0x5C8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8391{"zvmhuusiaa", VX(4, 0x5CA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8392{"zvmhuusiaas", VX(4, 0x5CB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8393{"zvmhuusian", VX(4, 0x5CC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8394{"zvmhuusians", VX(4, 0x5CD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8395{"zvmhuusianp", VX(4, 0x5CE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8396{"zvmhuusianps", VX(4, 0x5CF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8397{"zvmhuusui", VX(4, 0x5D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8398{"zvmhuusuiaa", VX(4, 0x5D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8399{"zvmhuusuiaas", VX(4, 0x5D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8400{"zvmhuusuian", VX(4, 0x5D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8401{"zvmhuusuians", VX(4, 0x5D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8402{"zvmhuusuianp", VX(4, 0x5D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8403{"zvmhuusuianps", VX(4, 0x5D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8404{"zvmhuusf", VX(4, 0x5D8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8405{"zvmhuusfr", VX(4, 0x5D9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8406{"zvmhuusfaas", VX(4, 0x5DA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8407{"zvmhuusfraas", VX(4, 0x5DB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8408{"zvmhuusfans", VX(4, 0x5DC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8409{"zvmhuusfrans", VX(4, 0x5DD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8410{"zvmhuusfanps", VX(4, 0x5DE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8411{"zvmhuusfranps", VX(4, 0x5DF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8412{"zvmhxlui", VX(4, 0x5E0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8413{"zvmhxluiaa", VX(4, 0x5E2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8414{"zvmhxluiaas", VX(4, 0x5E3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8415{"zvmhxluian", VX(4, 0x5E4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8416{"zvmhxluians", VX(4, 0x5E5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8417{"zvmhxluianp", VX(4, 0x5E6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8418{"zvmhxluianps", VX(4, 0x5E7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8419{"zvmhxlsi", VX(4, 0x5E8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8420{"zvmhxlsiaa", VX(4, 0x5EA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8421{"zvmhxlsiaas", VX(4, 0x5EB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8422{"zvmhxlsian", VX(4, 0x5EC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8423{"zvmhxlsians", VX(4, 0x5ED), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8424{"zvmhxlsianp", VX(4, 0x5EE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8425{"zvmhxlsianps", VX(4, 0x5EF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8426{"zvmhxlsui", VX(4, 0x5F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8427{"zvmhxlsuiaa", VX(4, 0x5F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8428{"zvmhxlsuiaas", VX(4, 0x5F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8429{"zvmhxlsuian", VX(4, 0x5F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8430{"zvmhxlsuians", VX(4, 0x5F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8431{"zvmhxlsuianp", VX(4, 0x5F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8432{"zvmhxlsuianps", VX(4, 0x5F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8433{"zvmhxlsf", VX(4, 0x5F8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8434{"zvmhxlsfr", VX(4, 0x5F9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8435{"zvmhxlsfaas", VX(4, 0x5FA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8436{"zvmhxlsfraas", VX(4, 0x5FB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8437{"zvmhxlsfans", VX(4, 0x5FC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8438{"zvmhxlsfrans", VX(4, 0x5FD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8439{"zvmhxlsfanps", VX(4, 0x5FE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8440{"zvmhxlsfranps", VX(4, 0x5FF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8441{"zmheui", VX(4, 0x600), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8442{"zmheuiaa", VX(4, 0x602), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8443{"zmheuiaas", VX(4, 0x603), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8444{"zmheuian", VX(4, 0x604), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8445{"zmheuians", VX(4, 0x605), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8446{"zmhesi", VX(4, 0x608), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8447{"zmhesiaa", VX(4, 0x60A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8448{"zmhesiaas", VX(4, 0x60B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8449{"zmhesian", VX(4, 0x60C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8450{"zmhesians", VX(4, 0x60D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8451{"zmhesui", VX(4, 0x610), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8452{"zmhesuiaa", VX(4, 0x612), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8453{"zmhesuiaas", VX(4, 0x613), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8454{"zmhesuian", VX(4, 0x614), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8455{"zmhesuians", VX(4, 0x615), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8456{"zmhesf", VX(4, 0x618), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8457{"zmhesfr", VX(4, 0x619), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8458{"zmhesfaas", VX(4, 0x61A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8459{"zmhesfraas", VX(4, 0x61B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8460{"zmhesfans", VX(4, 0x61C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8461{"zmhesfrans", VX(4, 0x61D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8462{"zmheoui", VX(4, 0x620), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8463{"zmheouiaa", VX(4, 0x622), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8464{"zmheouiaas", VX(4, 0x623), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8465{"zmheouian", VX(4, 0x624), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8466{"zmheouians", VX(4, 0x625), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8467{"zmheosi", VX(4, 0x628), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8468{"zmheosiaa", VX(4, 0x62A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8469{"zmheosiaas", VX(4, 0x62B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8470{"zmheosian", VX(4, 0x62C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8471{"zmheosians", VX(4, 0x62D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8472{"zmheosui", VX(4, 0x630), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8473{"zmheosuiaa", VX(4, 0x632), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8474{"zmheosuiaas", VX(4, 0x633), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8475{"zmheosuian", VX(4, 0x634), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8476{"zmheosuians", VX(4, 0x635), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8477{"zmheosf", VX(4, 0x638), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8478{"zmheosfr", VX(4, 0x639), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8479{"zmheosfaas", VX(4, 0x63A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8480{"zmheosfraas", VX(4, 0x63B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8481{"zmheosfans", VX(4, 0x63C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8482{"zmheosfrans", VX(4, 0x63D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8483{"zmhoui", VX(4, 0x640), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8484{"zmhouiaa", VX(4, 0x642), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8485{"zmhouiaas", VX(4, 0x643), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8486{"zmhouian", VX(4, 0x644), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8487{"zmhouians", VX(4, 0x645), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8488{"zmhosi", VX(4, 0x648), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8489{"zmhosiaa", VX(4, 0x64A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8490{"zmhosiaas", VX(4, 0x64B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8491{"zmhosian", VX(4, 0x64C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8492{"zmhosians", VX(4, 0x64D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8493{"zmhosui", VX(4, 0x650), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8494{"zmhosuiaa", VX(4, 0x652), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8495{"zmhosuiaas", VX(4, 0x653), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8496{"zmhosuian", VX(4, 0x654), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8497{"zmhosuians", VX(4, 0x655), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8498{"zmhosf", VX(4, 0x658), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8499{"zmhosfr", VX(4, 0x659), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8500{"zmhosfaas", VX(4, 0x65A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8501{"zmhosfraas", VX(4, 0x65B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8502{"zmhosfans", VX(4, 0x65C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8503{"zmhosfrans", VX(4, 0x65D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8504{"zvmhuih", VX(4, 0x660), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8505{"zvmhuihs", VX(4, 0x661), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8506{"zvmhuiaah", VX(4, 0x662), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8507{"zvmhuiaahs", VX(4, 0x663), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8508{"zvmhuianh", VX(4, 0x664), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8509{"zvmhuianhs", VX(4, 0x665), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8510{"zvmhsihs", VX(4, 0x669), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8511{"zvmhsiaahs", VX(4, 0x66B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8512{"zvmhsianhs", VX(4, 0x66D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8513{"zvmhsuihs", VX(4, 0x671), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8514{"zvmhsuiaahs", VX(4, 0x673), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8515{"zvmhsuianhs", VX(4, 0x675), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8516{"zvmhsfh", VX(4, 0x678), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8517{"zvmhsfrh", VX(4, 0x679), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8518{"zvmhsfaahs", VX(4, 0x67A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8519{"zvmhsfraahs", VX(4, 0x67B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8520{"zvmhsfanhs", VX(4, 0x67C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8521{"zvmhsfranhs", VX(4, 0x67D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8522{"zvdotphaui", VX(4, 0x680), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8523{"zvdotphauis", VX(4, 0x681), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8524{"zvdotphauiaa", VX(4, 0x682), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8525{"zvdotphauiaas", VX(4, 0x683), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8526{"zvdotphauian", VX(4, 0x684), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8527{"zvdotphauians", VX(4, 0x685), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8528{"zvdotphasi", VX(4, 0x688), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8529{"zvdotphasis", VX(4, 0x689), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8530{"zvdotphasiaa", VX(4, 0x68A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8531{"zvdotphasiaas", VX(4, 0x68B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8532{"zvdotphasian", VX(4, 0x68C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8533{"zvdotphasians", VX(4, 0x68D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8534{"zvdotphasui", VX(4, 0x690), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8535{"zvdotphasuis", VX(4, 0x691), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8536{"zvdotphasuiaa", VX(4, 0x692), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8537{"zvdotphasuiaas", VX(4, 0x693), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8538{"zvdotphasuian", VX(4, 0x694), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8539{"zvdotphasuians", VX(4, 0x695), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8540{"zvdotphasfs", VX(4, 0x698), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8541{"zvdotphasfrs", VX(4, 0x699), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8542{"zvdotphasfaas", VX(4, 0x69A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8543{"zvdotphasfraas", VX(4, 0x69B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8544{"zvdotphasfans", VX(4, 0x69C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8545{"zvdotphasfrans", VX(4, 0x69D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8546{"zvdotphxaui", VX(4, 0x6A0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8547{"zvdotphxauis", VX(4, 0x6A1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8548{"zvdotphxauiaa", VX(4, 0x6A2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8549{"zvdotphxauiaas", VX(4, 0x6A3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8550{"zvdotphxauian", VX(4, 0x6A4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8551{"zvdotphxauians", VX(4, 0x6A5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8552{"zvdotphxasi", VX(4, 0x6A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8553{"zvdotphxasis", VX(4, 0x6A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8554{"zvdotphxasiaa", VX(4, 0x6AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8555{"zvdotphxasiaas", VX(4, 0x6AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8556{"zvdotphxasian", VX(4, 0x6AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8557{"zvdotphxasians", VX(4, 0x6AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8558{"zvdotphxasui", VX(4, 0x6B0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8559{"zvdotphxasuis", VX(4, 0x6B1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8560{"zvdotphxasuiaa", VX(4, 0x6B2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8561{"zvdotphxasuiaas", VX(4, 0x6B3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8562{"zvdotphxasuian", VX(4, 0x6B4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8563{"zvdotphxasuians", VX(4, 0x6B5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8564{"zvdotphxasfs", VX(4, 0x6B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8565{"zvdotphxasfrs", VX(4, 0x6B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8566{"zvdotphxasfaas", VX(4, 0x6BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8567{"zvdotphxasfraas", VX(4, 0x6BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8568{"zvdotphxasfans", VX(4, 0x6BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8569{"zvdotphxasfrans", VX(4, 0x6BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8570{"zvdotphsui", VX(4, 0x6C0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8571{"zvdotphsuis", VX(4, 0x6C1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8572{"zvdotphsuiaa", VX(4, 0x6C2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8573{"zvdotphsuiaas", VX(4, 0x6C3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8574{"zvdotphsuian", VX(4, 0x6C4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8575{"zvdotphsuians", VX(4, 0x6C5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8576{"zvdotphssi", VX(4, 0x6C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8577{"zvdotphssis", VX(4, 0x6C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8578{"zvdotphssiaa", VX(4, 0x6CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8579{"zvdotphssiaas", VX(4, 0x6CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8580{"zvdotphssian", VX(4, 0x6CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8581{"zvdotphssians", VX(4, 0x6CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8582{"zvdotphssui", VX(4, 0x6D0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8583{"zvdotphssuis", VX(4, 0x6D1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8584{"zvdotphssuiaa", VX(4, 0x6D2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8585{"zvdotphssuiaas", VX(4, 0x6D3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8586{"zvdotphssuian", VX(4, 0x6D4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8587{"zvdotphssuians", VX(4, 0x6D5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8588{"zvdotphssfs", VX(4, 0x6D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8589{"zvdotphssfrs", VX(4, 0x6D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8590{"zvdotphssfaas", VX(4, 0x6DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8591{"zvdotphssfraas", VX(4, 0x6DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8592{"zvdotphssfans", VX(4, 0x6DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8593{"zvdotphssfrans", VX(4, 0x6DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8594{"zmwluis", VX(4, 0x6E1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8595{"zmwluiaa", VX(4, 0x6E2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8596{"zmwluiaas", VX(4, 0x6E3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8597{"zmwluian", VX(4, 0x6E4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8598{"zmwluians", VX(4, 0x6E5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8599{"zmwlsis", VX(4, 0x6E9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8600{"zmwlsiaas", VX(4, 0x6EB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8601{"zmwlsians", VX(4, 0x6ED), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8602{"zmwlsuis", VX(4, 0x6F1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8603{"zmwlsuiaas", VX(4, 0x6F3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8604{"zmwlsuians", VX(4, 0x6F5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8605{"zmwsf", VX(4, 0x6F8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8606{"zmwsfr", VX(4, 0x6F9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8607{"zmwsfaas", VX(4, 0x6FA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8608{"zmwsfraas", VX(4, 0x6FB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8609{"zmwsfans", VX(4, 0x6FC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8610{"zmwsfrans", VX(4, 0x6FD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8611{"zlddx", VX(4, 0x300), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8612{"zldd", VX(4, 0x301), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
8613{"zldwx", VX(4, 0x302), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8614{"zldw", VX(4, 0x303), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
8615{"zldhx", VX(4, 0x304), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8616{"zldh", VX(4, 0x305), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
8617{"zlwgsfdx", VX(4, 0x308), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8618{"zlwgsfd", VX(4, 0x309), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8619{"zlwwosdx", VX(4, 0x30A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8620{"zlwwosd", VX(4, 0x30B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8621{"zlwhsplatwdx", VX(4, 0x30C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8622{"zlwhsplatwd", VX(4, 0x30D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8623{"zlwhsplatdx", VX(4, 0x30E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8624{"zlwhsplatd", VX(4, 0x30F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8625{"zlwhgwsfdx", VX(4, 0x310), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8626{"zlwhgwsfd", VX(4, 0x311), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8627{"zlwhedx", VX(4, 0x312), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8628{"zlwhed", VX(4, 0x313), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8629{"zlwhosdx", VX(4, 0x314), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8630{"zlwhosd", VX(4, 0x315), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8631{"zlwhoudx", VX(4, 0x316), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8632{"zlwhoud", VX(4, 0x317), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8633{"zlwhx", VX(4, 0x318), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8634{"zlwh", VX(4, 0x319), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}},
8635{"zlwwx", VX(4, 0x31A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8636{"zlww", VX(4, 0x31B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}},
8637{"zlhgwsfx", VX(4, 0x31C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8638{"zlhgwsf", VX(4, 0x31D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8639{"zlhhsplatx", VX(4, 0x31E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8640{"zlhhsplat", VX(4, 0x31F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8641{"zstddx", VX(4, 0x320), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8642{"zstdd", VX(4, 0x321), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
8643{"zstdwx", VX(4, 0x322), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8644{"zstdw", VX(4, 0x323), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
8645{"zstdhx", VX(4, 0x324), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8646{"zstdh", VX(4, 0x325), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
8647{"zstwhedx", VX(4, 0x328), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8648{"zstwhed", VX(4, 0x329), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}},
8649{"zstwhodx", VX(4, 0x32A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8650{"zstwhod", VX(4, 0x32B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}},
8651{"zlhhex", VX(4, 0x330), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8652{"zlhhe", VX(4, 0x331), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8653{"zlhhosx", VX(4, 0x332), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8654{"zlhhos", VX(4, 0x333), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8655{"zlhhoux", VX(4, 0x334), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8656{"zlhhou", VX(4, 0x335), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8657{"zsthex", VX(4, 0x338), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8658{"zsthe", VX(4, 0x339), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}},
8659{"zsthox", VX(4, 0x33A), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8660{"zstho", VX(4, 0x33B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}},
8661{"zstwhx", VX(4, 0x33C), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8662{"zstwh", VX(4, 0x33D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}},
8663{"zstwwx", VX(4, 0x33E), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8664{"zstww", VX(4, 0x33F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}},
8665{"zlddmx", VX(4, 0x340), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8666{"zlddu", VX(4, 0x341), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
8667{"zldwmx", VX(4, 0x342), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8668{"zldwu", VX(4, 0x343), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
8669{"zldhmx", VX(4, 0x344), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8670{"zldhu", VX(4, 0x345), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
8671{"zlwgsfdmx", VX(4, 0x348), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8672{"zlwgsfdu", VX(4, 0x349), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8673{"zlwwosdmx", VX(4, 0x34A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8674{"zlwwosdu", VX(4, 0x34B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8675{"zlwhsplatwdmx", VX(4, 0x34C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8676{"zlwhsplatwdu", VX(4, 0x34D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8677{"zlwhsplatdmx", VX(4, 0x34E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8678{"zlwhsplatdu", VX(4, 0x34F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8679{"zlwhgwsfdmx", VX(4, 0x350), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8680{"zlwhgwsfdu", VX(4, 0x351), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8681{"zlwhedmx", VX(4, 0x352), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8682{"zlwhedu", VX(4, 0x353), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8683{"zlwhosdmx", VX(4, 0x354), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8684{"zlwhosdu", VX(4, 0x355), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8685{"zlwhoudmx", VX(4, 0x356), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8686{"zlwhoudu", VX(4, 0x357), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8687{"zlwhmx", VX(4, 0x358), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8688{"zlwhu", VX(4, 0x359), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}},
8689{"zlwwmx", VX(4, 0x35A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8690{"zlwwu", VX(4, 0x35B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}},
8691{"zlhgwsfmx", VX(4, 0x35C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8692{"zlhgwsfu", VX(4, 0x35D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8693{"zlhhsplatmx", VX(4, 0x35E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8694{"zlhhsplatu", VX(4, 0x35F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8695{"zstddmx", VX(4, 0x360), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8696{"zstddu", VX(4, 0x361), VX_MASK, PPCLSP, 0, {RS, EVUIMM_8_EX0, RA}},
8697{"zstdwmx", VX(4, 0x362), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8698{"zstdwu", VX(4, 0x363), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}},
8699{"zstdhmx", VX(4, 0x364), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8700{"zstdhu", VX(4, 0x365), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}},
8701{"zstwhedmx", VX(4, 0x368), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8702{"zstwhedu", VX(4, 0x369), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}},
8703{"zstwhodmx", VX(4, 0x36A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8704{"zstwhodu", VX(4, 0x36B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}},
8705{"zlhhemx", VX(4, 0x370), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8706{"zlhheu", VX(4, 0x371), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8707{"zlhhosmx", VX(4, 0x372), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8708{"zlhhosu", VX(4, 0x373), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8709{"zlhhoumx", VX(4, 0x374), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8710{"zlhhouu", VX(4, 0x375), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8711{"zsthemx", VX(4, 0x378), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8712{"zstheu", VX(4, 0x379), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}},
8713{"zsthomx", VX(4, 0x37A), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8714{"zsthou", VX(4, 0x37B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}},
8715{"zstwhmx", VX(4, 0x37C), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8716{"zstwhu", VX(4, 0x37D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}},
8717{"zstwwmx", VX(4, 0x37E), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8718{"zstwwu", VX(4, 0x37F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}},
8719
14b57c7c 8720{"e_cmpi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
dfdaec14 8721{"e_cmpwi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
14b57c7c 8722{"e_cmpli", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
dfdaec14 8723{"e_cmplwi", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
14b57c7c
AM
8724{"e_addi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8725{"e_subi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
8726{"e_addi.", SCI8(6,17), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8727{"e_addic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8728{"e_subic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
8729{"e_addic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8730{"e_subic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
8731{"e_mulli", SCI8(6,20), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8732{"e_subfic", SCI8(6,22), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8733{"e_subfic.", SCI8(6,23), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8734{"e_andi", SCI8(6,24), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8735{"e_andi.", SCI8(6,25), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8736{"e_nop", SCI8(6,26), 0xffffffff, PPCVLE, 0, {0}},
8737{"e_ori", SCI8(6,26), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8738{"e_ori.", SCI8(6,27), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8739{"e_xori", SCI8(6,28), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8740{"e_xori.", SCI8(6,29), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8741{"e_lbzu", OPVUP(6,0), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8742{"e_lhau", OPVUP(6,3), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8743{"e_lhzu", OPVUP(6,1), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8744{"e_lmw", OPVUP(6,8), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8745{"e_lwzu", OPVUP(6,2), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8746{"e_stbu", OPVUP(6,4), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8747{"e_sthu", OPVUP(6,5), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8748{"e_stwu", OPVUP(6,6), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8749{"e_stmw", OPVUP(6,9), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
d2e6c9a3 8750{"e_lmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
8751{"e_ldmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8752{"e_stmvgprw", OPVUPRT(6,17,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 8753{"e_lmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
8754{"e_ldmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8755{"e_stmvsprw", OPVUPRT(6,17,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 8756{"e_lmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
8757{"e_ldmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8758{"e_stmvsrrw", OPVUPRT(6,17,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 8759{"e_lmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
8760{"e_ldmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8761{"e_stmvcsrrw", OPVUPRT(6,17,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 8762{"e_lmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
8763{"e_ldmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8764{"e_stmvdsrrw", OPVUPRT(6,17,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3
AF
8765{"e_lmvmcsrrw", OPVUPRT(6,16,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8766{"e_stmvmcsrrw", OPVUPRT(6,17,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
14b57c7c
AM
8767{"e_add16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, SI}},
8768{"e_la", OP(7), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8769{"e_sub16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, NSI}},
8770
8771{"se_addi", SE_IM5(8,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
8772{"se_cmpli", SE_IM5(8,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
8773{"se_subi", SE_IM5(9,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
8774{"se_subi.", SE_IM5(9,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
8775{"se_cmpi", SE_IM5(10,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8776{"se_bmaski", SE_IM5(11,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8777{"se_andi", SE_IM5(11,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8778
8779{"e_lbz", OP(12), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8780{"e_stb", OP(13), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8781{"e_lha", OP(14), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8782
8783{"se_srw", SE_RR(16,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8784{"se_sraw", SE_RR(16,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8785{"se_slw", SE_RR(16,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8786{"se_nop", SE_RR(17,0), 0xffff, PPCVLE, 0, {0}},
8787{"se_or", SE_RR(17,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8788{"se_andc", SE_RR(17,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8789{"se_and", SE_RR(17,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8790{"se_and.", SE_RR(17,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8791{"se_li", IM7(9), IM7_MASK, PPCVLE, 0, {RX, UI7}},
8792
8793{"e_lwz", OP(20), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8794{"e_stw", OP(21), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8795{"e_lhz", OP(22), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8796{"e_sth", OP(23), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8797
8798{"se_bclri", SE_IM5(24,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8799{"se_bgeni", SE_IM5(24,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8800{"se_bseti", SE_IM5(25,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8801{"se_btsti", SE_IM5(25,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8802{"se_srwi", SE_IM5(26,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8803{"se_srawi", SE_IM5(26,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8804{"se_slwi", SE_IM5(27,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8805
8806{"e_lis", I16L(28,28), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
8807{"e_and2is.", I16L(28,29), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
8808{"e_or2is", I16L(28,26), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
8809{"e_and2i.", I16L(28,25), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
8810{"e_or2i", I16L(28,24), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
8811{"e_cmphl16i", IA16(28,23), IA16_MASK, PPCVLE, 0, {RA, VLEUIMM}},
8812{"e_cmph16i", IA16(28,22), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
8813{"e_cmpl16i", I16A(28,21), I16A_MASK, PPCVLE, 0, {RA, VLEUIMM}},
14b57c7c
AM
8814{"e_mull2i", I16A(28,20), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
8815{"e_cmp16i", IA16(28,19), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
14b57c7c
AM
8816{"e_sub2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}},
8817{"e_add2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
8818{"e_sub2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}},
8819{"e_add2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
8820{"e_li", LI20(28,0), LI20_MASK, PPCVLE, 0, {RT, IMM20}},
8821{"e_rlwimi", M(29,0), M_MASK, PPCVLE, 0, {RA, RS, SH, MB, ME}},
8822{"e_rlwinm", M(29,1), M_MASK, PPCVLE, 0, {RA, RT, SH, MBE, ME}},
8823{"e_b", BD24(30,0,0), BD24_MASK, PPCVLE, 0, {B24}},
8824{"e_bl", BD24(30,0,1), BD24_MASK, PPCVLE, 0, {B24}},
8825{"e_bdnz", EBD15(30,8,BO32DNZ,0), EBD15_MASK, PPCVLE, 0, {B15}},
8826{"e_bdnzl", EBD15(30,8,BO32DNZ,1), EBD15_MASK, PPCVLE, 0, {B15}},
8827{"e_bdz", EBD15(30,8,BO32DZ,0), EBD15_MASK, PPCVLE, 0, {B15}},
8828{"e_bdzl", EBD15(30,8,BO32DZ,1), EBD15_MASK, PPCVLE, 0, {B15}},
8829{"e_bge", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8830{"e_bgel", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8831{"e_bnl", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8832{"e_bnll", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8833{"e_blt", EBD15BI(30,8,BO32T,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8834{"e_bltl", EBD15BI(30,8,BO32T,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8835{"e_bgt", EBD15BI(30,8,BO32T,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8836{"e_bgtl", EBD15BI(30,8,BO32T,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8837{"e_ble", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8838{"e_blel", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8839{"e_bng", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8840{"e_bngl", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8841{"e_bne", EBD15BI(30,8,BO32F,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8842{"e_bnel", EBD15BI(30,8,BO32F,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8843{"e_beq", EBD15BI(30,8,BO32T,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8844{"e_beql", EBD15BI(30,8,BO32T,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8845{"e_bso", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8846{"e_bsol", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8847{"e_bun", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8848{"e_bunl", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8849{"e_bns", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8850{"e_bnsl", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8851{"e_bnu", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8852{"e_bnul", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8853{"e_bc", BD15(30,8,0), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
8854{"e_bcl", BD15(30,8,1), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
8855
8856{"e_bf", EBD15(30,8,BO32F,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
8857{"e_bfl", EBD15(30,8,BO32F,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
8858{"e_bt", EBD15(30,8,BO32T,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
8859{"e_btl", EBD15(30,8,BO32T,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
8860
8861{"e_cmph", X(31,14), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
a8cc8a54 8862{"e_sc", X(31,36), XRTRA_MASK, PPCVLE, 0, {ELEV}},
14b57c7c
AM
8863{"e_cmphl", X(31,46), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
8864{"e_crandc", XL(31,129), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8865{"e_crnand", XL(31,225), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
98553ad3 8866{"e_crnot", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BAB}},
14b57c7c 8867{"e_crnor", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
98553ad3 8868{"e_crclr", XL(31,193), XL_MASK, PPCVLE, 0, {BTAB}},
14b57c7c
AM
8869{"e_crxor", XL(31,193), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8870{"e_mcrf", XL(31,16), XL_MASK, PPCVLE, 0, {CRD, CR}},
8871{"e_slwi", EX(31,112), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8872{"e_slwi.", EX(31,113), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8873
8874{"e_crand", XL(31,257), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8875
8876{"e_rlw", EX(31,560), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
8877{"e_rlw.", EX(31,561), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
8878
98553ad3 8879{"e_crset", XL(31,289), XL_MASK, PPCVLE, 0, {BTAB}},
14b57c7c
AM
8880{"e_creqv", XL(31,289), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8881
8882{"e_rlwi", EX(31,624), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8883{"e_rlwi.", EX(31,625), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8884
8885{"e_crorc", XL(31,417), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8886
98553ad3 8887{"e_crmove", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BAB}},
14b57c7c
AM
8888{"e_cror", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8889
8890{"mtmas1", XSPR(31,467,625), XSPR_MASK, PPCVLE, 0, {RS}},
8891
8892{"e_srwi", EX(31,1136), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8893{"e_srwi.", EX(31,1137), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8894
8895{"se_lbz", SD4(8), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
8896
8897{"se_stb", SD4(9), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
8898
8899{"se_lhz", SD4(10), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
8900
8901{"se_sth", SD4(11), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
8902
8903{"se_lwz", SD4(12), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
8904
8905{"se_stw", SD4(13), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
8906
8907{"se_bge", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8908{"se_bnl", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8909{"se_ble", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8910{"se_bng", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8911{"se_bne", EBD8IO(28,0,2), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8912{"se_bns", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8913{"se_bnu", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8914{"se_bf", EBD8IO(28,0,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}},
8915{"se_blt", EBD8IO(28,1,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8916{"se_bgt", EBD8IO(28,1,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8917{"se_beq", EBD8IO(28,1,2), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8918{"se_bso", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8919{"se_bun", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8920{"se_bt", EBD8IO(28,1,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}},
8921{"se_bc", BD8IO(28), BD8IO_MASK, PPCVLE, 0, {BO16, BI16, B8}},
8922{"se_b", BD8(58,0,0), BD8_MASK, PPCVLE, 0, {B8}},
8923{"se_bl", BD8(58,0,1), BD8_MASK, PPCVLE, 0, {B8}},
b9c361e0
JL
8924};
8925
2ceb7719 8926const unsigned int vle_num_opcodes =
b9c361e0
JL
8927 sizeof (vle_opcodes) / sizeof (vle_opcodes[0]);
8928\f
252b5132
RH
8929/* The macro table. This is only used by the assembler. */
8930
8931/* The expressions of the form (-x ! 31) & (x | 31) have the value 0
8932 when x=0; 32-x when x is between 1 and 31; are negative if x is
8933 negative; and are 32 or more otherwise. This is what you want
8934 when, for instance, you are emulating a right shift by a
8935 rotate-left-and-mask, because the underlying instructions support
8936 shifts of size 0 but not shifts of size 32. By comparison, when
8937 extracting x bits from some word you want to use just 32-x, because
8938 the underlying instructions don't support extracting 0 bits but do
8939 support extracting the whole word (32 bits in this case). */
8940
8941const struct powerpc_macro powerpc_macros[] = {
de866fcc
AM
8942{"extldi", 4, PPC64, "rldicr %0,%1,%3,(%2)-1"},
8943{"extldi.", 4, PPC64, "rldicr. %0,%1,%3,(%2)-1"},
bdc7fcfe
AM
8944{"extrdi", 4, PPC64, "rldicl %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"},
8945{"extrdi.", 4, PPC64, "rldicl. %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"},
de866fcc
AM
8946{"insrdi", 4, PPC64, "rldimi %0,%1,64-((%2)+(%3)),%3"},
8947{"insrdi.", 4, PPC64, "rldimi. %0,%1,64-((%2)+(%3)),%3"},
8948{"rotrdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),0"},
8949{"rotrdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),0"},
8950{"sldi", 3, PPC64, "rldicr %0,%1,%2,63-(%2)"},
8951{"sldi.", 3, PPC64, "rldicr. %0,%1,%2,63-(%2)"},
8952{"srdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),%2"},
8953{"srdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),%2"},
8954{"clrrdi", 3, PPC64, "rldicr %0,%1,0,63-(%2)"},
8955{"clrrdi.", 3, PPC64, "rldicr. %0,%1,0,63-(%2)"},
8956{"clrlsldi", 4, PPC64, "rldic %0,%1,%3,(%2)-(%3)"},
14b57c7c 8957{"clrlsldi.",4, PPC64, "rldic. %0,%1,%3,(%2)-(%3)"},
de866fcc
AM
8958
8959{"extlwi", 4, PPCCOM, "rlwinm %0,%1,%3,0,(%2)-1"},
8960{"extlwi.", 4, PPCCOM, "rlwinm. %0,%1,%3,0,(%2)-1"},
8961{"extrwi", 4, PPCCOM, "rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
8962{"extrwi.", 4, PPCCOM, "rlwinm. %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
8963{"inslwi", 4, PPCCOM, "rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
8964{"inslwi.", 4, PPCCOM, "rlwimi. %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
8965{"insrwi", 4, PPCCOM, "rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
8966{"insrwi.", 4, PPCCOM, "rlwimi. %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
8967{"rotrwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"},
8968{"rotrwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),0,31"},
8969{"slwi", 3, PPCCOM, "rlwinm %0,%1,%2,0,31-(%2)"},
8970{"sli", 3, PWRCOM, "rlinm %0,%1,%2,0,31-(%2)"},
8971{"slwi.", 3, PPCCOM, "rlwinm. %0,%1,%2,0,31-(%2)"},
8972{"sli.", 3, PWRCOM, "rlinm. %0,%1,%2,0,31-(%2)"},
8973{"srwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
8974{"sri", 3, PWRCOM, "rlinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
8975{"srwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
8976{"sri.", 3, PWRCOM, "rlinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
8977{"clrrwi", 3, PPCCOM, "rlwinm %0,%1,0,0,31-(%2)"},
8978{"clrrwi.", 3, PPCCOM, "rlwinm. %0,%1,0,0,31-(%2)"},
8979{"clrlslwi", 4, PPCCOM, "rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"},
8980{"clrlslwi.",4, PPCCOM, "rlwinm. %0,%1,%3,(%2)-(%3),31-(%3)"},
a4ebc835
AM
8981
8982{"e_extlwi", 4, PPCVLE, "e_rlwinm %0,%1,%3,0,(%2)-1"},
8983{"e_extrwi", 4, PPCVLE, "e_rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
8984{"e_inslwi", 4, PPCVLE, "e_rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
8985{"e_insrwi", 4, PPCVLE, "e_rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
8986{"e_rotlwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31"},
8987{"e_rotrwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"},
8988{"e_slwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31-(%2)"},
8989{"e_srwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
8990{"e_clrlwi", 3, PPCVLE, "e_rlwinm %0,%1,0,%2,31"},
8991{"e_clrrwi", 3, PPCVLE, "e_rlwinm %0,%1,0,0,31-(%2)"},
8992{"e_clrlslwi",4, PPCVLE, "e_rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"},
74081948
AF
8993
8994/* old SPE instructions have new names with the same opcodes */
8995{"evsadd", 3, PPCSPE|PPCVLE, "efsadd %0,%1,%2"},
8996{"evssub", 3, PPCSPE|PPCVLE, "efssub %0,%1,%2"},
8997{"evsabs", 2, PPCSPE|PPCVLE, "efsabs %0,%1"},
8998{"evsnabs", 2, PPCSPE|PPCVLE, "efsnabs %0,%1"},
8999{"evsneg", 2, PPCSPE|PPCVLE, "efsneg %0,%1"},
9000{"evsmul", 3, PPCSPE|PPCVLE, "efsmul %0,%1,%2"},
9001{"evsdiv", 3, PPCSPE|PPCVLE, "efsdiv %0,%1,%2"},
9002{"evscmpgt", 3, PPCSPE|PPCVLE, "efscmpgt %0,%1,%2"},
9003{"evsgmplt", 3, PPCSPE|PPCVLE, "efscmplt %0,%1,%2"},
9004{"evsgmpeq", 3, PPCSPE|PPCVLE, "efscmpeq %0,%1,%2"},
9005{"evscfui", 2, PPCSPE|PPCVLE, "efscfui %0,%1"},
9006{"evscfsi", 2, PPCSPE|PPCVLE, "efscfsi %0,%1"},
9007{"evscfuf", 2, PPCSPE|PPCVLE, "efscfuf %0,%1"},
9008{"evscfsf", 2, PPCSPE|PPCVLE, "efscfsf %0,%1"},
9009{"evsctui", 2, PPCSPE|PPCVLE, "efsctui %0,%1"},
9010{"evsctsi", 2, PPCSPE|PPCVLE, "efsctsi %0,%1"},
9011{"evsctuf", 2, PPCSPE|PPCVLE, "efsctuf %0,%1"},
9012{"evsctsf", 2, PPCSPE|PPCVLE, "efsctsf %0,%1"},
9013{"evsctuiz", 2, PPCSPE|PPCVLE, "efsctuiz %0,%1"},
9014{"evsctsiz", 2, PPCSPE|PPCVLE, "efsctsiz %0,%1"},
9015{"evststgt", 3, PPCSPE|PPCVLE, "efststgt %0,%1,%2"},
9016{"evststlt", 3, PPCSPE|PPCVLE, "efststlt %0,%1,%2"},
9017{"evststeq", 3, PPCSPE|PPCVLE, "efststeq %0,%1,%2"},
9018
9019/* SPE2 instructions which just are mapped to SPE2 */
9020{"evdotphsssi", 3, PPCSPE2, "evdotphssmi %0,%1,%2"},
9021{"evdotphsssia", 3, PPCSPE2, "evdotphssmia %0,%1,%2"},
9022{"evdotpwsssi", 3, PPCSPE2, "evdotpwssmi %0,%1,%2"},
9023{"evdotpwsssia", 3, PPCSPE2, "evdotpwssmia %0,%1,%2"}
252b5132
RH
9024};
9025
9026const int powerpc_num_macros =
9027 sizeof (powerpc_macros) / sizeof (powerpc_macros[0]);
74081948
AF
9028
9029/* SPE v2 instruction set from SPE2PIM Rev. 2 08/2011 */
9030const struct powerpc_opcode spe2_opcodes[] = {
9031{"evdotpwcssi", VX (4, 128), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9032{"evdotpwcsmi", VX (4, 129), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9033{"evdotpwcssfr", VX (4, 130), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9034{"evdotpwcssf", VX (4, 131), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9035{"evdotpwgasmf", VX (4, 136), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9036{"evdotpwxgasmf", VX (4, 137), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9037{"evdotpwgasmfr", VX (4, 138), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9038{"evdotpwxgasmfr", VX (4, 139), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9039{"evdotpwgssmf", VX (4, 140), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9040{"evdotpwxgssmf", VX (4, 141), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9041{"evdotpwgssmfr", VX (4, 142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9042{"evdotpwxgssmfr", VX (4, 143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9043{"evdotpwcssiaaw3", VX (4, 144), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9044{"evdotpwcsmiaaw3", VX (4, 145), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9045{"evdotpwcssfraaw3", VX (4, 146), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9046{"evdotpwcssfaaw3", VX (4, 147), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9047{"evdotpwgasmfaa3", VX (4, 152), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9048{"evdotpwxgasmfaa3", VX (4, 153), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9049{"evdotpwgasmfraa3", VX (4, 154), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9050{"evdotpwxgasmfraa3", VX (4, 155), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9051{"evdotpwgssmfaa3", VX (4, 156), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9052{"evdotpwxgssmfaa3", VX (4, 157), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9053{"evdotpwgssmfraa3", VX (4, 158), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9054{"evdotpwxgssmfraa3", VX (4, 159), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9055{"evdotpwcssia", VX (4, 160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9056{"evdotpwcsmia", VX (4, 161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9057{"evdotpwcssfra", VX (4, 162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9058{"evdotpwcssfa", VX (4, 163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9059{"evdotpwgasmfa", VX (4, 168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9060{"evdotpwxgasmfa", VX (4, 169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9061{"evdotpwgasmfra", VX (4, 170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9062{"evdotpwxgasmfra", VX (4, 171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9063{"evdotpwgssmfa", VX (4, 172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9064{"evdotpwxgssmfa", VX (4, 173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9065{"evdotpwgssmfra", VX (4, 174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9066{"evdotpwxgssmfra", VX (4, 175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9067{"evdotpwcssiaaw", VX (4, 176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9068{"evdotpwcsmiaaw", VX (4, 177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9069{"evdotpwcssfraaw", VX (4, 178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9070{"evdotpwcssfaaw", VX (4, 179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9071{"evdotpwgasmfaa", VX (4, 184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9072{"evdotpwxgasmfaa", VX (4, 185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9073{"evdotpwgasmfraa", VX (4, 186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9074{"evdotpwxgasmfraa", VX (4, 187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9075{"evdotpwgssmfaa", VX (4, 188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9076{"evdotpwxgssmfaa", VX (4, 189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9077{"evdotpwgssmfraa", VX (4, 190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9078{"evdotpwxgssmfraa", VX (4, 191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9079{"evdotphihcssi", VX (4, 256), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9080{"evdotplohcssi", VX (4, 257), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9081{"evdotphihcssf", VX (4, 258), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9082{"evdotplohcssf", VX (4, 259), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9083{"evdotphihcsmi", VX (4, 264), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9084{"evdotplohcsmi", VX (4, 265), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9085{"evdotphihcssfr", VX (4, 266), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9086{"evdotplohcssfr", VX (4, 267), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9087{"evdotphihcssiaaw3", VX (4, 272), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9088{"evdotplohcssiaaw3", VX (4, 273), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9089{"evdotphihcssfaaw3", VX (4, 274), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9090{"evdotplohcssfaaw3", VX (4, 275), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9091{"evdotphihcsmiaaw3", VX (4, 280), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9092{"evdotplohcsmiaaw3", VX (4, 281), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9093{"evdotphihcssfraaw3", VX (4, 282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9094{"evdotplohcssfraaw3", VX (4, 283), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9095{"evdotphihcssia", VX (4, 288), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9096{"evdotplohcssia", VX (4, 289), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9097{"evdotphihcssfa", VX (4, 290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9098{"evdotplohcssfa", VX (4, 291), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9099{"evdotphihcsmia", VX (4, 296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9100{"evdotplohcsmia", VX (4, 297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9101{"evdotphihcssfra", VX (4, 298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9102{"evdotplohcssfra", VX (4, 299), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9103{"evdotphihcssiaaw", VX (4, 304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9104{"evdotplohcssiaaw", VX (4, 305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9105{"evdotphihcssfaaw", VX (4, 306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9106{"evdotplohcssfaaw", VX (4, 307), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9107{"evdotphihcsmiaaw", VX (4, 312), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9108{"evdotplohcsmiaaw", VX (4, 313), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9109{"evdotphihcssfraaw", VX (4, 314), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9110{"evdotplohcssfraaw", VX (4, 315), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9111{"evdotphausi", VX (4, 320), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9112{"evdotphassi", VX (4, 321), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9113{"evdotphasusi", VX (4, 322), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9114{"evdotphassf", VX (4, 323), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9115{"evdotphsssf", VX (4, 327), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9116{"evdotphaumi", VX (4, 328), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9117{"evdotphasmi", VX (4, 329), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9118{"evdotphasumi", VX (4, 330), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9119{"evdotphassfr", VX (4, 331), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9120{"evdotphssmi", VX (4, 333), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9121{"evdotphsssfr", VX (4, 335), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9122{"evdotphausiaaw3", VX (4, 336), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9123{"evdotphassiaaw3", VX (4, 337), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9124{"evdotphasusiaaw3", VX (4, 338), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9125{"evdotphassfaaw3", VX (4, 339), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9126{"evdotphsssiaaw3", VX (4, 341), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9127{"evdotphsssfaaw3", VX (4, 343), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9128{"evdotphaumiaaw3", VX (4, 344), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9129{"evdotphasmiaaw3", VX (4, 345), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9130{"evdotphasumiaaw3", VX (4, 346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9131{"evdotphassfraaw3", VX (4, 347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9132{"evdotphssmiaaw3", VX (4, 349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9133{"evdotphsssfraaw3", VX (4, 351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9134{"evdotphausia", VX (4, 352), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9135{"evdotphassia", VX (4, 353), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9136{"evdotphasusia", VX (4, 354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9137{"evdotphassfa", VX (4, 355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9138{"evdotphsssfa", VX (4, 359), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9139{"evdotphaumia", VX (4, 360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9140{"evdotphasmia", VX (4, 361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9141{"evdotphasumia", VX (4, 362), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9142{"evdotphassfra", VX (4, 363), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9143{"evdotphssmia", VX (4, 365), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9144{"evdotphsssfra", VX (4, 367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9145{"evdotphausiaaw", VX (4, 368), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9146{"evdotphassiaaw", VX (4, 369), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9147{"evdotphasusiaaw", VX (4, 370), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9148{"evdotphassfaaw", VX (4, 371), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9149{"evdotphsssiaaw", VX (4, 373), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9150{"evdotphsssfaaw", VX (4, 375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9151{"evdotphaumiaaw", VX (4, 376), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9152{"evdotphasmiaaw", VX (4, 377), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9153{"evdotphasumiaaw", VX (4, 378), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9154{"evdotphassfraaw", VX (4, 379), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9155{"evdotphssmiaaw", VX (4, 381), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9156{"evdotphsssfraaw", VX (4, 383), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9157{"evdotp4hgaumi", VX (4, 384), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9158{"evdotp4hgasmi", VX (4, 385), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9159{"evdotp4hgasumi", VX (4, 386), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9160{"evdotp4hgasmf", VX (4, 387), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9161{"evdotp4hgssmi", VX (4, 388), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9162{"evdotp4hgssmf", VX (4, 389), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9163{"evdotp4hxgasmi", VX (4, 390), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9164{"evdotp4hxgasmf", VX (4, 391), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9165{"evdotpbaumi", VX (4, 392), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9166{"evdotpbasmi", VX (4, 393), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9167{"evdotpbasumi", VX (4, 394), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9168{"evdotp4hxgssmi", VX (4, 398), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9169{"evdotp4hxgssmf", VX (4, 399), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9170{"evdotp4hgaumiaa3", VX (4, 400), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9171{"evdotp4hgasmiaa3", VX (4, 401), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9172{"evdotp4hgasumiaa3", VX (4, 402), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9173{"evdotp4hgasmfaa3", VX (4, 403), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9174{"evdotp4hgssmiaa3", VX (4, 404), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9175{"evdotp4hgssmfaa3", VX (4, 405), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9176{"evdotp4hxgasmiaa3", VX (4, 406), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9177{"evdotp4hxgasmfaa3", VX (4, 407), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9178{"evdotpbaumiaaw3", VX (4, 408), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9179{"evdotpbasmiaaw3", VX (4, 409), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9180{"evdotpbasumiaaw3", VX (4, 410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9181{"evdotp4hxgssmiaa3", VX (4, 414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9182{"evdotp4hxgssmfaa3", VX (4, 415), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9183{"evdotp4hgaumia", VX (4, 416), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9184{"evdotp4hgasmia", VX (4, 417), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9185{"evdotp4hgasumia", VX (4, 418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9186{"evdotp4hgasmfa", VX (4, 419), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9187{"evdotp4hgssmia", VX (4, 420), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9188{"evdotp4hgssmfa", VX (4, 421), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9189{"evdotp4hxgasmia", VX (4, 422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9190{"evdotp4hxgasmfa", VX (4, 423), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9191{"evdotpbaumia", VX (4, 424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9192{"evdotpbasmia", VX (4, 425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9193{"evdotpbasumia", VX (4, 426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9194{"evdotp4hxgssmia", VX (4, 430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9195{"evdotp4hxgssmfa", VX (4, 431), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9196{"evdotp4hgaumiaa", VX (4, 432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9197{"evdotp4hgasmiaa", VX (4, 433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9198{"evdotp4hgasumiaa", VX (4, 434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9199{"evdotp4hgasmfaa", VX (4, 435), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9200{"evdotp4hgssmiaa", VX (4, 436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9201{"evdotp4hgssmfaa", VX (4, 437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9202{"evdotp4hxgasmiaa", VX (4, 438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9203{"evdotp4hxgasmfaa", VX (4, 439), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9204{"evdotpbaumiaaw", VX (4, 440), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9205{"evdotpbasmiaaw", VX (4, 441), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9206{"evdotpbasumiaaw", VX (4, 442), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9207{"evdotp4hxgssmiaa", VX (4, 446), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9208{"evdotp4hxgssmfaa", VX (4, 447), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9209{"evdotpwausi", VX (4, 448), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9210{"evdotpwassi", VX (4, 449), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9211{"evdotpwasusi", VX (4, 450), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9212{"evdotpwaumi", VX (4, 456), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9213{"evdotpwasmi", VX (4, 457), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9214{"evdotpwasumi", VX (4, 458), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9215{"evdotpwssmi", VX (4, 461), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9216{"evdotpwausiaa3", VX (4, 464), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9217{"evdotpwassiaa3", VX (4, 465), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9218{"evdotpwasusiaa3", VX (4, 466), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9219{"evdotpwsssiaa3", VX (4, 469), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9220{"evdotpwaumiaa3", VX (4, 472), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9221{"evdotpwasmiaa3", VX (4, 473), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9222{"evdotpwasumiaa3", VX (4, 474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9223{"evdotpwssmiaa3", VX (4, 477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9224{"evdotpwausia", VX (4, 480), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9225{"evdotpwassia", VX (4, 481), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9226{"evdotpwasusia", VX (4, 482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9227{"evdotpwaumia", VX (4, 488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9228{"evdotpwasmia", VX (4, 489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9229{"evdotpwasumia", VX (4, 490), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9230{"evdotpwssmia", VX (4, 493), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9231{"evdotpwausiaa", VX (4, 496), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9232{"evdotpwassiaa", VX (4, 497), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9233{"evdotpwasusiaa", VX (4, 498), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9234{"evdotpwsssiaa", VX (4, 501), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9235{"evdotpwaumiaa", VX (4, 504), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9236{"evdotpwasmiaa", VX (4, 505), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9237{"evdotpwasumiaa", VX (4, 506), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9238{"evdotpwssmiaa", VX (4, 509), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9239{"evaddib", VX (4, 515), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}},
9240{"evaddih", VX (4, 513), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}},
9241{"evsubifh", VX (4, 517), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}},
9242{"evsubifb", VX (4, 519), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}},
9243{"evabsb", VX_RB_CONST(4, 520, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9244{"evabsh", VX_RB_CONST(4, 520, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9245{"evabsd", VX_RB_CONST(4, 520, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9246{"evabss", VX_RB_CONST(4, 520, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9247{"evabsbs", VX_RB_CONST(4, 520, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9248{"evabshs", VX_RB_CONST(4, 520, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9249{"evabsds", VX_RB_CONST(4, 520, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9250{"evnegwo", VX_RB_CONST(4, 521, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9251{"evnegb", VX_RB_CONST(4, 521, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9252{"evnegbo", VX_RB_CONST(4, 521, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9253{"evnegh", VX_RB_CONST(4, 521, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9254{"evnegho", VX_RB_CONST(4, 521, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9255{"evnegd", VX_RB_CONST(4, 521, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9256{"evnegs", VX_RB_CONST(4, 521, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9257{"evnegwos", VX_RB_CONST(4, 521, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9258{"evnegbs", VX_RB_CONST(4, 521, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9259{"evnegbos", VX_RB_CONST(4, 521, 11), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9260{"evneghs", VX_RB_CONST(4, 521, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9261{"evneghos", VX_RB_CONST(4, 521, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9262{"evnegds", VX_RB_CONST(4, 521, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9263{"evextzb", VX_RB_CONST(4, 522, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9264{"evextsbh", VX_RB_CONST(4, 522, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9265{"evextsw", VX_RB_CONST(4, 523, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9266{"evrndwh", VX_RB_CONST(4, 524, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9267{"evrndhb", VX_RB_CONST(4, 524, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9268{"evrnddw", VX_RB_CONST(4, 524, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9269{"evrndwhus", VX_RB_CONST(4, 524, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9270{"evrndwhss", VX_RB_CONST(4, 524, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9271{"evrndhbus", VX_RB_CONST(4, 524, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9272{"evrndhbss", VX_RB_CONST(4, 524, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9273{"evrnddwus", VX_RB_CONST(4, 524, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9274{"evrnddwss", VX_RB_CONST(4, 524, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9275{"evrndwnh", VX_RB_CONST(4, 524, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9276{"evrndhnb", VX_RB_CONST(4, 524, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9277{"evrnddnw", VX_RB_CONST(4, 524, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9278{"evrndwnhus", VX_RB_CONST(4, 524, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9279{"evrndwnhss", VX_RB_CONST(4, 524, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9280{"evrndhnbus", VX_RB_CONST(4, 524, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9281{"evrndhnbss", VX_RB_CONST(4, 524, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9282{"evrnddnwus", VX_RB_CONST(4, 524, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9283{"evrnddnwss", VX_RB_CONST(4, 524, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9284{"evcntlzh", VX_RB_CONST(4, 525, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9285{"evcntlsh", VX_RB_CONST(4, 526, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9286{"evpopcntb", VX_RB_CONST(4, 526, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9287{"circinc", VX (4, 528), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9288{"evunpkhibui", VX_RB_CONST(4, 540, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9289{"evunpkhibsi", VX_RB_CONST(4, 540, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9290{"evunpkhihui", VX_RB_CONST(4, 540, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9291{"evunpkhihsi", VX_RB_CONST(4, 540, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9292{"evunpklobui", VX_RB_CONST(4, 540, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9293{"evunpklobsi", VX_RB_CONST(4, 540, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9294{"evunpklohui", VX_RB_CONST(4, 540, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9295{"evunpklohsi", VX_RB_CONST(4, 540, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9296{"evunpklohf", VX_RB_CONST(4, 540, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9297{"evunpkhihf", VX_RB_CONST(4, 540, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9298{"evunpklowgsf", VX_RB_CONST(4, 540, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9299{"evunpkhiwgsf", VX_RB_CONST(4, 540, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9300{"evsatsduw", VX_RB_CONST(4, 540, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9301{"evsatsdsw", VX_RB_CONST(4, 540, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9302{"evsatshub", VX_RB_CONST(4, 540, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9303{"evsatshsb", VX_RB_CONST(4, 540, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9304{"evsatuwuh", VX_RB_CONST(4, 540, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9305{"evsatswsh", VX_RB_CONST(4, 540, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9306{"evsatswuh", VX_RB_CONST(4, 540, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9307{"evsatuhub", VX_RB_CONST(4, 540, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9308{"evsatuduw", VX_RB_CONST(4, 540, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9309{"evsatuwsw", VX_RB_CONST(4, 540, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9310{"evsatshuh", VX_RB_CONST(4, 540, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9311{"evsatuhsh", VX_RB_CONST(4, 540, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9312{"evsatswuw", VX_RB_CONST(4, 540, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9313{"evsatswgsdf", VX_RB_CONST(4, 540, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9314{"evsatsbub", VX_RB_CONST(4, 540, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9315{"evsatubsb", VX_RB_CONST(4, 540, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9316{"evmaxhpuw", VX_RB_CONST(4, 541, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9317{"evmaxhpsw", VX_RB_CONST(4, 541, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9318{"evmaxbpuh", VX_RB_CONST(4, 541, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9319{"evmaxbpsh", VX_RB_CONST(4, 541, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9320{"evmaxwpud", VX_RB_CONST(4, 541, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9321{"evmaxwpsd", VX_RB_CONST(4, 541, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9322{"evminhpuw", VX_RB_CONST(4, 541, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9323{"evminhpsw", VX_RB_CONST(4, 541, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9324{"evminbpuh", VX_RB_CONST(4, 541, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9325{"evminbpsh", VX_RB_CONST(4, 541, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9326{"evminwpud", VX_RB_CONST(4, 541, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9327{"evminwpsd", VX_RB_CONST(4, 541, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9328{"evmaxmagws", VX (4, 543), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9329{"evsl", VX (4, 549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9330{"evsli", VX (4, 551), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
9331{"evsplatie", VX_RB_CONST (4, 553, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9332{"evsplatib", VX_RB_CONST (4, 553, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9333{"evsplatibe", VX_RB_CONST (4, 553, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9334{"evsplatih", VX_RB_CONST (4, 553, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9335{"evsplatihe", VX_RB_CONST (4, 553, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9336{"evsplatid", VX_RB_CONST (4, 553, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9337{"evsplatia", VX_RB_CONST (4, 553, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9338{"evsplatiea", VX_RB_CONST (4, 553, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9339{"evsplatiba", VX_RB_CONST (4, 553, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9340{"evsplatibea", VX_RB_CONST (4, 553, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9341{"evsplatiha", VX_RB_CONST (4, 553, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9342{"evsplatihea", VX_RB_CONST (4, 553, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9343{"evsplatida", VX_RB_CONST (4, 553, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9344{"evsplatfio", VX_RB_CONST (4, 555, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9345{"evsplatfib", VX_RB_CONST (4, 555, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9346{"evsplatfibo", VX_RB_CONST (4, 555, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9347{"evsplatfih", VX_RB_CONST (4, 555, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9348{"evsplatfiho", VX_RB_CONST (4, 555, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9349{"evsplatfid", VX_RB_CONST (4, 555, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9350{"evsplatfia", VX_RB_CONST (4, 555, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9351{"evsplatfioa", VX_RB_CONST (4, 555, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9352{"evsplatfiba", VX_RB_CONST (4, 555, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9353{"evsplatfiboa", VX_RB_CONST (4, 555, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9354{"evsplatfiha", VX_RB_CONST (4, 555, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9355{"evsplatfihoa", VX_RB_CONST (4, 555, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9356{"evsplatfida", VX_RB_CONST (4, 555, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9357{"evcmpgtdu", VX_SPE_CRFD (4, 560, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9358{"evcmpgtds", VX_SPE_CRFD (4, 561, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9359{"evcmpltdu", VX_SPE_CRFD (4, 562, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9360{"evcmpltds", VX_SPE_CRFD (4, 563, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9361{"evcmpeqd", VX_SPE_CRFD (4, 564, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9362{"evswapbhilo", VX (4, 568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9363{"evswapblohi", VX (4, 569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9364{"evswaphhilo", VX (4, 570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9365{"evswaphlohi", VX (4, 571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9366{"evswaphe", VX (4, 572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9367{"evswaphhi", VX (4, 573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9368{"evswaphlo", VX (4, 574), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9369{"evswapho", VX (4, 575), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9370{"evinsb", VX (4, 584), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}},
9371{"evxtrb", VX (4, 586), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}},
9372{"evsplath", VX_SPE2_HH (4, 588, 0, 0), VX_SPE2_HH_MASK, PPCSPE2, 0, {RD, RA, HH}},
9373{"evsplatb", VX_SPE2_SPLATB (4, 588, 2), VX_SPE2_SPLATB_MASK, PPCSPE2, 0, {RD, RA, BBB}},
9374{"evinsh", VX_SPE2_DDHH (4, 589, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}},
9375{"evclrbe", VX_SPE2_CLR (4, 590, 0), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
9376{"evclrbo", VX_SPE2_CLR (4, 590, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
9377{"evclrh", VX_SPE2_CLR (4, 591, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
9378{"evxtrh", VX_SPE2_DDHH (4, 591, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}},
9379{"evselbitm0", VX (4, 592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9380{"evselbitm1", VX (4, 593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9381{"evselbit", VX (4, 594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9382{"evperm", VX (4, 596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9383{"evperm2", VX (4, 597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9384{"evperm3", VX (4, 598), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9385{"evxtrd", VX (4, 600), VX_OFF_SPE2_MASK, PPCSPE2, 0, {RD, RA, RB, VX_OFF_SPE2}},
9386{"evsrbu", VX (4, 608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9387{"evsrbs", VX (4, 609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9388{"evsrbiu", VX (4, 610), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9389{"evsrbis", VX (4, 611), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9390{"evslb", VX (4, 612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9391{"evrlb", VX (4, 613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9392{"evslbi", VX (4, 614), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9393{"evrlbi", VX (4, 615), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9394{"evsrhu", VX (4, 616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9395{"evsrhs", VX (4, 617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9396{"evsrhiu", VX (4, 618), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9397{"evsrhis", VX (4, 619), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9398{"evslh", VX (4, 620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9399{"evrlh", VX (4, 621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9400{"evslhi", VX (4, 622), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9401{"evrlhi", VX (4, 623), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9402{"evsru", VX (4, 624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9403{"evsrs", VX (4, 625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9404{"evsriu", VX (4, 626), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
9405{"evsris", VX (4, 627), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
9406{"evlvsl", VX (4, 628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9407{"evlvsr", VX (4, 629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9408{"evsroiu", VX_SPE2_OCTET (4, 631, 0), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
9409{"evsrois", VX_SPE2_OCTET (4, 631, 1), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
9410{"evsloi", VX_SPE2_OCTET (4, 631, 2), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
9411{"evldbx", VX (4, 774), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9412{"evldb", VX (4, 775), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8, RA}},
9413{"evlhhsplathx", VX (4, 778), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9414{"evlhhsplath", VX (4, 779), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2, RA}},
9415{"evlwbsplatwx", VX (4, 786), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9416{"evlwbsplatw", VX (4, 787), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9417{"evlwhsplatwx", VX (4, 794), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9418{"evlwhsplatw", VX (4, 795), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9419{"evlbbsplatbx", VX (4, 798), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9420{"evlbbsplatb", VX (4, 799), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1, RA}},
9421{"evstdbx", VX (4, 806), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9422{"evstdb", VX (4, 807), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8, RA}},
9423{"evlwbex", VX (4, 810), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9424{"evlwbe", VX (4, 811), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9425{"evlwboux", VX (4, 812), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9426{"evlwbou", VX (4, 813), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9427{"evlwbosx", VX (4, 814), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9428{"evlwbos", VX (4, 815), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9429{"evstwbex", VX (4, 818), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9430{"evstwbe", VX (4, 819), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
9431{"evstwbox", VX (4, 822), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9432{"evstwbo", VX (4, 823), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
9433{"evstwbx", VX (4, 826), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9434{"evstwb", VX (4, 827), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
9435{"evsthbx", VX (4, 830), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9436{"evsthb", VX (4, 831), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2, RA}},
9437{"evlddmx", VX (4, 832), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9438{"evlddu", VX (4, 833), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9439{"evldwmx", VX (4, 834), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9440{"evldwu", VX (4, 835), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9441{"evldhmx", VX (4, 836), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9442{"evldhu", VX (4, 837), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9443{"evldbmx", VX (4, 838), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9444{"evldbu", VX (4, 839), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9445{"evlhhesplatmx", VX (4, 840), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9446{"evlhhesplatu", VX (4, 841), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9447{"evlhhsplathmx", VX (4, 842), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9448{"evlhhsplathu", VX (4, 843), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9449{"evlhhousplatmx", VX (4, 844), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9450{"evlhhousplatu", VX (4, 845), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9451{"evlhhossplatmx", VX (4, 846), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9452{"evlhhossplatu", VX (4, 847), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9453{"evlwhemx", VX (4, 848), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9454{"evlwheu", VX (4, 849), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9455{"evlwbsplatwmx", VX (4, 850), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9456{"evlwbsplatwu", VX (4, 851), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9457{"evlwhoumx", VX (4, 852), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9458{"evlwhouu", VX (4, 853), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9459{"evlwhosmx", VX (4, 854), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9460{"evlwhosu", VX (4, 855), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9461{"evlwwsplatmx", VX (4, 856), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9462{"evlwwsplatu", VX (4, 857), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9463{"evlwhsplatwmx", VX (4, 858), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9464{"evlwhsplatwu", VX (4, 859), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9465{"evlwhsplatmx", VX (4, 860), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9466{"evlwhsplatu", VX (4, 861), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9467{"evlbbsplatbmx", VX (4, 862), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9468{"evlbbsplatbu", VX (4, 863), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1_EX0, RA}},
9469{"evstddmx", VX (4, 864), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9470{"evstddu", VX (4, 865), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9471{"evstdwmx", VX (4, 866), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9472{"evstdwu", VX (4, 867), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9473{"evstdhmx", VX (4, 868), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9474{"evstdhu", VX (4, 869), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9475{"evstdbmx", VX (4, 870), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9476{"evstdbu", VX (4, 871), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9477{"evlwbemx", VX (4, 874), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9478{"evlwbeu", VX (4, 875), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9479{"evlwboumx", VX (4, 876), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9480{"evlwbouu", VX (4, 877), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9481{"evlwbosmx", VX (4, 878), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9482{"evlwbosu", VX (4, 879), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9483{"evstwhemx", VX (4, 880), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9484{"evstwheu", VX (4, 881), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9485{"evstwbemx", VX (4, 882), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9486{"evstwbeu", VX (4, 883), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9487{"evstwhomx", VX (4, 884), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9488{"evstwhou", VX (4, 885), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9489{"evstwbomx", VX (4, 886), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9490{"evstwbou", VX (4, 887), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9491{"evstwwemx", VX (4, 888), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9492{"evstwweu", VX (4, 889), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9493{"evstwbmx", VX (4, 890), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9494{"evstwbu", VX (4, 891), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9495{"evstwwomx", VX (4, 892), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9496{"evstwwou", VX (4, 893), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9497{"evsthbmx", VX (4, 894), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9498{"evsthbu", VX (4, 895), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2_EX0, RA}},
9499{"evmhusi", VX (4, 1024), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9500{"evmhssi", VX (4, 1025), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9501{"evmhsusi", VX (4, 1026), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9502{"evmhssf", VX (4, 1028), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9503{"evmhumi", VX (4, 1029), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9504{"evmhssfr", VX (4, 1030), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9505{"evmhesumi", VX (4, 1034), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9506{"evmhosumi", VX (4, 1038), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9507{"evmbeumi", VX (4, 1048), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9508{"evmbesmi", VX (4, 1049), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9509{"evmbesumi", VX (4, 1050), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9510{"evmboumi", VX (4, 1052), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9511{"evmbosmi", VX (4, 1053), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9512{"evmbosumi", VX (4, 1054), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9513{"evmhesumia", VX (4, 1066), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9514{"evmhosumia", VX (4, 1070), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9515{"evmbeumia", VX (4, 1080), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9516{"evmbesmia", VX (4, 1081), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9517{"evmbesumia", VX (4, 1082), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9518{"evmboumia", VX (4, 1084), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9519{"evmbosmia", VX (4, 1085), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9520{"evmbosumia", VX (4, 1086), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9521{"evmwusiw", VX (4, 1088), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9522{"evmwssiw", VX (4, 1089), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9523{"evmwhssfr", VX (4, 1094), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9524{"evmwehgsmfr", VX (4, 1110), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9525{"evmwehgsmf", VX (4, 1111), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9526{"evmwohgsmfr", VX (4, 1118), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9527{"evmwohgsmf", VX (4, 1119), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9528{"evmwhssfra", VX (4, 1126), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9529{"evmwehgsmfra", VX (4, 1142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9530{"evmwehgsmfa", VX (4, 1143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9531{"evmwohgsmfra", VX (4, 1150), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9532{"evmwohgsmfa", VX (4, 1151), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9533{"evaddusiaa", VX_RB_CONST(4, 1152, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9534{"evaddssiaa", VX_RB_CONST(4, 1153, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9535{"evsubfusiaa", VX_RB_CONST(4, 1154, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9536{"evsubfssiaa", VX_RB_CONST(4, 1155, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9537{"evaddsmiaa", VX_RB_CONST(4, 1156, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9538{"evsubfsmiaa", VX_RB_CONST(4, 1158, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9539{"evaddh", VX (4, 1160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9540{"evaddhss", VX (4, 1161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9541{"evsubfh", VX (4, 1162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9542{"evsubfhss", VX (4, 1163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9543{"evaddhx", VX (4, 1164), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9544{"evaddhxss", VX (4, 1165), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9545{"evsubfhx", VX (4, 1166), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9546{"evsubfhxss", VX (4, 1167), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9547{"evaddd", VX (4, 1168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9548{"evadddss", VX (4, 1169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9549{"evsubfd", VX (4, 1170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9550{"evsubfdss", VX (4, 1171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9551{"evaddb", VX (4, 1172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9552{"evaddbss", VX (4, 1173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9553{"evsubfb", VX (4, 1174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9554{"evsubfbss", VX (4, 1175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9555{"evaddsubfh", VX (4, 1176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9556{"evaddsubfhss", VX (4, 1177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9557{"evsubfaddh", VX (4, 1178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9558{"evsubfaddhss", VX (4, 1179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9559{"evaddsubfhx", VX (4, 1180), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9560{"evaddsubfhxss", VX (4, 1181), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9561{"evsubfaddhx", VX (4, 1182), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9562{"evsubfaddhxss", VX (4, 1183), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9563{"evadddus", VX (4, 1184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9564{"evaddbus", VX (4, 1185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9565{"evsubfdus", VX (4, 1186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9566{"evsubfbus", VX (4, 1187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9567{"evaddwus", VX (4, 1188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9568{"evaddwxus", VX (4, 1189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9569{"evsubfwus", VX (4, 1190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9570{"evsubfwxus", VX (4, 1191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9571{"evadd2subf2h", VX (4, 1192), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9572{"evadd2subf2hss", VX (4, 1193), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9573{"evsubf2add2h", VX (4, 1194), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9574{"evsubf2add2hss", VX (4, 1195), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9575{"evaddhus", VX (4, 1196), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9576{"evaddhxus", VX (4, 1197), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9577{"evsubfhus", VX (4, 1198), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9578{"evsubfhxus", VX (4, 1199), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9579{"evaddwss", VX (4, 1201), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9580{"evsubfwss", VX (4, 1203), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9581{"evaddwx", VX (4, 1204), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9582{"evaddwxss", VX (4, 1205), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9583{"evsubfwx", VX (4, 1206), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9584{"evsubfwxss", VX (4, 1207), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9585{"evaddsubfw", VX (4, 1208), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9586{"evaddsubfwss", VX (4, 1209), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9587{"evsubfaddw", VX (4, 1210), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9588{"evsubfaddwss", VX (4, 1211), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9589{"evaddsubfwx", VX (4, 1212), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9590{"evaddsubfwxss", VX (4, 1213), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9591{"evsubfaddwx", VX (4, 1214), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9592{"evsubfaddwxss", VX (4, 1215), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9593{"evmar", VX_SPE2_EVMAR (4, 1220), VX_SPE2_EVMAR_MASK, PPCSPE2, 0, {RD}},
9594{"evsumwu", VX_RB_CONST(4, 1221, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9595{"evsumws", VX_RB_CONST(4, 1221, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9596{"evsum4bu", VX_RB_CONST(4, 1221, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9597{"evsum4bs", VX_RB_CONST(4, 1221, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9598{"evsum2hu", VX_RB_CONST(4, 1221, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9599{"evsum2hs", VX_RB_CONST(4, 1221, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9600{"evdiff2his", VX_RB_CONST(4, 1221, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9601{"evsum2his", VX_RB_CONST(4, 1221, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9602{"evsumwua", VX_RB_CONST(4, 1221, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9603{"evsumwsa", VX_RB_CONST(4, 1221, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9604{"evsum4bua", VX_RB_CONST(4, 1221, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9605{"evsum4bsa", VX_RB_CONST(4, 1221, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9606{"evsum2hua", VX_RB_CONST(4, 1221, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9607{"evsum2hsa", VX_RB_CONST(4, 1221, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9608{"evdiff2hisa", VX_RB_CONST(4, 1221, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9609{"evsum2hisa", VX_RB_CONST(4, 1221, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9610{"evsumwuaa", VX_RB_CONST(4, 1221, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9611{"evsumwsaa", VX_RB_CONST(4, 1221, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9612{"evsum4buaaw", VX_RB_CONST(4, 1221, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9613{"evsum4bsaaw", VX_RB_CONST(4, 1221, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9614{"evsum2huaaw", VX_RB_CONST(4, 1221, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9615{"evsum2hsaaw", VX_RB_CONST(4, 1221, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9616{"evdiff2hisaaw", VX_RB_CONST(4, 1221, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9617{"evsum2hisaaw", VX_RB_CONST(4, 1221, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9618{"evdivwsf", VX (4, 1228), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9619{"evdivwuf", VX (4, 1229), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9620{"evdivs", VX (4, 1230), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9621{"evdivu", VX (4, 1231), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9622{"evaddwegsi", VX (4, 1232), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9623{"evaddwegsf", VX (4, 1233), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9624{"evsubfwegsi", VX (4, 1234), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9625{"evsubfwegsf", VX (4, 1235), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9626{"evaddwogsi", VX (4, 1236), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9627{"evaddwogsf", VX (4, 1237), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9628{"evsubfwogsi", VX (4, 1238), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9629{"evsubfwogsf", VX (4, 1239), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9630{"evaddhhiuw", VX (4, 1240), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9631{"evaddhhisw", VX (4, 1241), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9632{"evsubfhhiuw", VX (4, 1242), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9633{"evsubfhhisw", VX (4, 1243), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9634{"evaddhlouw", VX (4, 1244), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9635{"evaddhlosw", VX (4, 1245), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9636{"evsubfhlouw", VX (4, 1246), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9637{"evsubfhlosw", VX (4, 1247), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9638{"evmhesusiaaw", VX (4, 1282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9639{"evmhosusiaaw", VX (4, 1286), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9640{"evmhesumiaaw", VX (4, 1290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9641{"evmhosumiaaw", VX (4, 1294), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9642{"evmbeusiaah", VX (4, 1296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9643{"evmbessiaah", VX (4, 1297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9644{"evmbesusiaah", VX (4, 1298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9645{"evmbousiaah", VX (4, 1300), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9646{"evmbossiaah", VX (4, 1301), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9647{"evmbosusiaah", VX (4, 1302), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9648{"evmbeumiaah", VX (4, 1304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9649{"evmbesmiaah", VX (4, 1305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9650{"evmbesumiaah", VX (4, 1306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9651{"evmboumiaah", VX (4, 1308), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9652{"evmbosmiaah", VX (4, 1309), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9653{"evmbosumiaah", VX (4, 1310), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9654{"evmwlusiaaw3", VX (4, 1346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9655{"evmwlssiaaw3", VX (4, 1347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9656{"evmwhssfraaw3", VX (4, 1348), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9657{"evmwhssfaaw3", VX (4, 1349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9658{"evmwhssfraaw", VX (4, 1350), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9659{"evmwhssfaaw", VX (4, 1351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9660{"evmwlumiaaw3", VX (4, 1354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9661{"evmwlsmiaaw3", VX (4, 1355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9662{"evmwusiaa", VX (4, 1360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9663{"evmwssiaa", VX (4, 1361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9664{"evmwehgsmfraa", VX (4, 1366), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9665{"evmwehgsmfaa", VX (4, 1367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9666{"evmwohgsmfraa", VX (4, 1374), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9667{"evmwohgsmfaa", VX (4, 1375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9668{"evmhesusianw", VX (4, 1410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9669{"evmhosusianw", VX (4, 1414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9670{"evmhesumianw", VX (4, 1418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9671{"evmhosumianw", VX (4, 1422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9672{"evmbeusianh", VX (4, 1424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9673{"evmbessianh", VX (4, 1425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9674{"evmbesusianh", VX (4, 1426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9675{"evmbousianh", VX (4, 1428), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9676{"evmbossianh", VX (4, 1429), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9677{"evmbosusianh", VX (4, 1430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9678{"evmbeumianh", VX (4, 1432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9679{"evmbesmianh", VX (4, 1433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9680{"evmbesumianh", VX (4, 1434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9681{"evmboumianh", VX (4, 1436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9682{"evmbosmianh", VX (4, 1437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9683{"evmbosumianh", VX (4, 1438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9684{"evmwlusianw3", VX (4, 1474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9685{"evmwlssianw3", VX (4, 1475), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9686{"evmwhssfranw3", VX (4, 1476), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9687{"evmwhssfanw3", VX (4, 1477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9688{"evmwhssfranw", VX (4, 1478), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9689{"evmwhssfanw", VX (4, 1479), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9690{"evmwlumianw3", VX (4, 1482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9691{"evmwlsmianw3", VX (4, 1483), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9692{"evmwusian", VX (4, 1488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9693{"evmwssian", VX (4, 1489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9694{"evmwehgsmfran", VX (4, 1494), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9695{"evmwehgsmfan", VX (4, 1495), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9696{"evmwohgsmfran", VX (4, 1502), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9697{"evmwohgsmfan", VX (4, 1503), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9698{"evseteqb", VX (4, 1536), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9699{"evseteqb.", VX (4, 1537), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9700{"evseteqh", VX (4, 1538), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9701{"evseteqh.", VX (4, 1539), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9702{"evseteqw", VX (4, 1540), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9703{"evseteqw.", VX (4, 1541), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9704{"evsetgthu", VX (4, 1544), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9705{"evsetgthu.", VX (4, 1545), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9706{"evsetgths", VX (4, 1546), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9707{"evsetgths.", VX (4, 1547), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9708{"evsetgtwu", VX (4, 1548), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9709{"evsetgtwu.", VX (4, 1549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9710{"evsetgtws", VX (4, 1550), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9711{"evsetgtws.", VX (4, 1551), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9712{"evsetgtbu", VX (4, 1552), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9713{"evsetgtbu.", VX (4, 1553), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9714{"evsetgtbs", VX (4, 1554), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9715{"evsetgtbs.", VX (4, 1555), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9716{"evsetltbu", VX (4, 1556), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9717{"evsetltbu.", VX (4, 1557), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9718{"evsetltbs", VX (4, 1558), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9719{"evsetltbs.", VX (4, 1559), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9720{"evsetlthu", VX (4, 1560), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9721{"evsetlthu.", VX (4, 1561), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9722{"evsetlths", VX (4, 1562), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9723{"evsetlths.", VX (4, 1563), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9724{"evsetltwu", VX (4, 1564), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9725{"evsetltwu.", VX (4, 1565), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9726{"evsetltws", VX (4, 1566), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9727{"evsetltws.", VX (4, 1567), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9728{"evsaduw", VX (4, 1568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9729{"evsadsw", VX (4, 1569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9730{"evsad4ub", VX (4, 1570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9731{"evsad4sb", VX (4, 1571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9732{"evsad2uh", VX (4, 1572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9733{"evsad2sh", VX (4, 1573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9734{"evsaduwa", VX (4, 1576), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9735{"evsadswa", VX (4, 1577), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9736{"evsad4uba", VX (4, 1578), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9737{"evsad4sba", VX (4, 1579), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9738{"evsad2uha", VX (4, 1580), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9739{"evsad2sha", VX (4, 1581), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9740{"evabsdifuw", VX (4, 1584), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9741{"evabsdifsw", VX (4, 1585), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9742{"evabsdifub", VX (4, 1586), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9743{"evabsdifsb", VX (4, 1587), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9744{"evabsdifuh", VX (4, 1588), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9745{"evabsdifsh", VX (4, 1589), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9746{"evsaduwaa", VX (4, 1592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9747{"evsadswaa", VX (4, 1593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9748{"evsad4ubaaw", VX (4, 1594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9749{"evsad4sbaaw", VX (4, 1595), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9750{"evsad2uhaaw", VX (4, 1596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9751{"evsad2shaaw", VX (4, 1597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9752{"evpkshubs", VX (4, 1600), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9753{"evpkshsbs", VX (4, 1601), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9754{"evpkswuhs", VX (4, 1602), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9755{"evpkswshs", VX (4, 1603), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9756{"evpkuhubs", VX (4, 1604), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9757{"evpkuwuhs", VX (4, 1605), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9758{"evpkswshilvs", VX (4, 1606), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9759{"evpkswgshefrs", VX (4, 1607), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9760{"evpkswshfrs", VX (4, 1608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9761{"evpkswshilvfrs", VX (4, 1609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9762{"evpksdswfrs", VX (4, 1610), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9763{"evpksdshefrs", VX (4, 1611), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9764{"evpkuduws", VX (4, 1612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9765{"evpksdsws", VX (4, 1613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9766{"evpkswgswfrs", VX (4, 1614), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9767{"evilveh", VX (4, 1616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9768{"evilveoh", VX (4, 1617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9769{"evilvhih", VX (4, 1618), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9770{"evilvhiloh", VX (4, 1619), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9771{"evilvloh", VX (4, 1620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9772{"evilvlohih", VX (4, 1621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9773{"evilvoeh", VX (4, 1622), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9774{"evilvoh", VX (4, 1623), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9775{"evdlveb", VX (4, 1624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9776{"evdlveh", VX (4, 1625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9777{"evdlveob", VX (4, 1626), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9778{"evdlveoh", VX (4, 1627), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9779{"evdlvob", VX (4, 1628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9780{"evdlvoh", VX (4, 1629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9781{"evdlvoeb", VX (4, 1630), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9782{"evdlvoeh", VX (4, 1631), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9783{"evmaxbu", VX (4, 1632), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9784{"evmaxbs", VX (4, 1633), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9785{"evmaxhu", VX (4, 1634), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9786{"evmaxhs", VX (4, 1635), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9787{"evmaxwu", VX (4, 1636), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9788{"evmaxws", VX (4, 1637), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9789{"evmaxdu", VX (4, 1638), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9790{"evmaxds", VX (4, 1639), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9791{"evminbu", VX (4, 1640), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9792{"evminbs", VX (4, 1641), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9793{"evminhu", VX (4, 1642), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9794{"evminhs", VX (4, 1643), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9795{"evminwu", VX (4, 1644), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9796{"evminws", VX (4, 1645), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9797{"evmindu", VX (4, 1646), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9798{"evminds", VX (4, 1647), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9799{"evavgwu", VX (4, 1648), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9800{"evavgws", VX (4, 1649), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9801{"evavgbu", VX (4, 1650), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9802{"evavgbs", VX (4, 1651), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9803{"evavghu", VX (4, 1652), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9804{"evavghs", VX (4, 1653), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9805{"evavgdu", VX (4, 1654), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9806{"evavgds", VX (4, 1655), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9807{"evavgwur", VX (4, 1656), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9808{"evavgwsr", VX (4, 1657), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9809{"evavgbur", VX (4, 1658), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9810{"evavgbsr", VX (4, 1659), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9811{"evavghur", VX (4, 1660), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9812{"evavghsr", VX (4, 1661), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9813{"evavgdur", VX (4, 1662), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9814{"evavgdsr", VX (4, 1663), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9815};
9816
2ceb7719 9817const unsigned int spe2_num_opcodes =
74081948 9818 sizeof (spe2_opcodes) / sizeof (spe2_opcodes[0]);
This page took 1.70201 seconds and 4 git commands to generate.