* config/tc-ppc.c (md_show_usage): Document -m476.
	* doc/c-ppc.texi (PowerPC-Opts): Document -m476.

gas/testsuite/
	* gas/ppc/476.s: New test.
	* gas/ppc/476.d: Likewise.
	* gas/ppc/ppc.exp: Run the 476 test.

include/opcode/
	* ppc.h (PPC_OPCODE_476): Define.

opcodes/
	* ppc-dis.c (ppc_opts): Add "476" entry.
	* ppc-opc.c (PPC476): Define.
	(powerpc_opcodes): Update mnemonics where required for 476.
This commit is contained in:
Peter Bergner 2009-10-02 14:42:42 +00:00
parent 4a056f1472
commit 9fe54b1ca1
12 changed files with 1103 additions and 84 deletions

View File

@ -1,3 +1,8 @@
2009-10-02 Peter Bergner <bergner@vnet.ibm.com>
* config/tc-ppc.c (md_show_usage): Document -m476.
* doc/c-ppc.texi (PowerPC-Opts): Document -m476.
2009-10-02 Jakub Jelinek <jakub@redhat.com>
* dw2gencfi.c: Include dwarf2dbg.h.

View File

@ -1188,6 +1188,7 @@ PowerPC options:\n\
-m405 generate code for PowerPC 405\n\
-m440 generate code for PowerPC 440\n\
-m464 generate code for PowerPC 464\n\
-m476 generate code for PowerPC 476\n\
-m7400, -m7410, -m7450, -m7455\n\
generate code for PowerPC 7400/7410/7450/7455\n\
-m750cl generate code for PowerPC 750cl\n"));

View File

@ -52,6 +52,9 @@ Generate code for PowerPC 403/405.
@item -m440
Generate code for PowerPC 440. BookE and some 405 instructions.
@item -m476
Generate code for PowerPC 476.
@item -m7400, -m7410, -m7450, -m7455
Generate code for PowerPC 7400/7410/7450/7455.

View File

@ -1,3 +1,9 @@
2009-10-02 Peter Bergner <bergner@vnet.ibm.com>
* gas/ppc/476.s: New test.
* gas/ppc/476.d: Likewise.
* gas/ppc/ppc.exp: Run the 476 test.
2009-10-01 Peter Bergner <bergner@vnet.ibm.com>
* gas/ppc/a2.d: Rename "ppca2" to "a2".

492
gas/testsuite/gas/ppc/476.d Normal file
View File

@ -0,0 +1,492 @@
#objdump: -d -M476
#as: -a32 -m476
#name: PowerPC 476 instructions
.*: +file format elf32-powerpc.*
Disassembly of section \.text:
0+00 <ppc476>:
0: 7c 64 2a 14 add r3,r4,r5
4: 7c 64 2a 15 add\. r3,r4,r5
8: 7c 64 28 14 addc r3,r4,r5
c: 7c 64 28 15 addc\. r3,r4,r5
10: 7c 64 2c 14 addco r3,r4,r5
14: 7c 64 2c 15 addco\. r3,r4,r5
18: 7c 64 29 14 adde r3,r4,r5
1c: 7c 64 29 15 adde\. r3,r4,r5
20: 7c 64 2d 14 addeo r3,r4,r5
24: 7c 64 2d 15 addeo\. r3,r4,r5
28: 38 64 ff 80 addi r3,r4,-128
2c: 30 64 ff 80 addic r3,r4,-128
30: 34 64 ff 80 addic\. r3,r4,-128
34: 3c 64 ff 80 addis r3,r4,-128
38: 7c 64 01 d4 addme r3,r4
3c: 7c 64 01 d5 addme\. r3,r4
40: 7c 64 05 d4 addmeo r3,r4
44: 7c 64 05 d5 addmeo\. r3,r4
48: 7c 64 2e 14 addo r3,r4,r5
4c: 7c 64 2e 15 addo\. r3,r4,r5
50: 7c 64 01 94 addze r3,r4
54: 7c 64 01 95 addze\. r3,r4
58: 7c 64 05 94 addzeo r3,r4
5c: 7c 64 05 95 addzeo\. r3,r4
60: 7c 83 28 38 and r3,r4,r5
64: 7c 83 28 39 and\. r3,r4,r5
68: 7d cd 78 78 andc r13,r14,r15
6c: 7e 30 90 79 andc\. r16,r17,r18
70: 70 83 de ad andi\. r3,r4,57005
74: 74 83 de ad andis\. r3,r4,57005
78: 48 00 00 02 ba 0 <ppc476>
7c: 40 01 00 00 bdnzf gt,7c <ppc476\+0x7c>
80: 40 85 00 02 blea cr1,0 <ppc476>
84: 4d 80 04 20 bltctr
88: 4c 8a 04 20 bnectr cr2
8c: 4c 86 04 20 bnectr cr1
90: 4c 86 04 20 bnectr cr1
94: 4d 80 04 21 bltctrl
98: 4c 8a 04 21 bnectrl cr2
9c: 4c 86 04 21 bnectrl cr1
a0: 4c 86 04 21 bnectrl cr1
a4: 40 43 00 01 bdzfl so,a4 <ppc476\+0xa4>
a8: 4d 80 00 20 bltlr
ac: 4c 8a 00 20 bnelr cr2
b0: 4c 86 00 20 bnelr cr1
b4: 4c 86 00 20 bnelr cr1
b8: 4d 80 00 21 bltlrl
bc: 4c 8a 00 21 bnelrl cr2
c0: 4c 86 00 21 bnelrl cr1
c4: 4c 86 00 21 bnelrl cr1
c8: 48 00 00 00 b c8 <ppc476\+0xc8>
cc: 48 00 00 01 bl cc <ppc476\+0xcc>
d0: 54 83 00 36 rlwinm r3,r4,0,0,27
d4: 7c 03 20 00 cmpw r3,r4
d8: 7f 83 20 00 cmpw cr7,r3,r4
dc: 7c 83 2b f8 cmpb r3,r4,r5
e0: 7c 83 2b f8 cmpb r3,r4,r5
e4: 2c 03 ff 59 cmpwi r3,-167
e8: 2f 83 ff 59 cmpwi cr7,r3,-167
ec: 7c 03 20 40 cmplw r3,r4
f0: 7f 83 20 40 cmplw cr7,r3,r4
f4: 28 03 00 a7 cmplwi r3,167
f8: 2b 83 00 a7 cmplwi cr7,r3,167
fc: 7c 03 20 40 cmplw r3,r4
100: 28 03 00 a7 cmplwi r3,167
104: 7c 03 20 00 cmpw r3,r4
108: 2c 03 ff 59 cmpwi r3,-167
10c: 7d 6a 00 34 cntlzw r10,r11
110: 7d 6a 00 35 cntlzw\. r10,r11
114: 4c 85 32 02 crand 4\*cr1\+lt,4\*cr1\+gt,4\*cr1\+eq
118: 4c 64 29 02 crandc so,4\*cr1\+lt,4\*cr1\+gt
11c: 4c e0 0a 42 creqv 4\*cr1\+so,lt,gt
120: 4c 22 19 c2 crnand gt,eq,so
124: 4c 01 10 42 crnor lt,gt,eq
128: 4c a6 3b 82 cror 4\*cr1\+gt,4\*cr1\+eq,4\*cr1\+so
12c: 4c 43 23 42 crorc eq,so,4\*cr1\+lt
130: 4c c7 01 82 crxor 4\*cr1\+eq,4\*cr1\+so,lt
134: 7c 09 55 ec dcba r9,r10
138: 7c 06 38 ac dcbf r6,r7
13c: 7c 06 38 ac dcbf r6,r7
140: 7c 06 3b ac dcbi r6,r7
144: 7c 85 33 0c dcblc 4,r5,r6
148: 7c 06 38 6c dcbst r6,r7
14c: 7c c0 2a 2c dcbt r0,r5,6
150: 7c 05 32 2c dcbt r5,r6
154: 7c c8 2a 2c dcbt r8,r5,6
158: 7c e8 49 4c dcbtls 7,r8,r9
15c: 7c e0 31 ec dcbtst r0,r6,7
160: 7c 06 39 ec dcbtst r6,r7
164: 7c e9 31 ec dcbtst r9,r6,7
168: 7d 4b 61 0c dcbtstls 10,r11,r12
16c: 7c 01 17 ec dcbz r1,r2
170: 7c 05 37 ec dcbz r5,r6
174: 7d 4b 63 d6 divw r10,r11,r12
178: 7d 6c 6b d7 divw\. r11,r12,r13
17c: 7d 4b 67 d6 divwo r10,r11,r12
180: 7d 6c 6f d7 divwo\. r11,r12,r13
184: 7d 4b 63 96 divwu r10,r11,r12
188: 7d 6c 6b 97 divwu\. r11,r12,r13
18c: 7d 4b 67 96 divwuo r10,r11,r12
190: 7d 6c 6f 97 divwuo\. r11,r12,r13
194: 7c 83 28 9c dlmzb r3,r4,r5
198: 7c 83 28 9d dlmzb\. r3,r4,r5
19c: 7d 6a 62 38 eqv r10,r11,r12
1a0: 7d 6a 62 39 eqv\. r10,r11,r12
1a4: 54 83 20 26 rlwinm r3,r4,4,0,19
1a8: 7c 83 07 74 extsb r3,r4
1ac: 7c 83 07 75 extsb\. r3,r4
1b0: 7c 83 07 34 extsh r3,r4
1b4: 7c 83 07 35 extsh\. r3,r4
1b8: fe a0 fa 10 fabs f21,f31
1bc: fe a0 fa 11 fabs\. f21,f31
1c0: fd 4b 60 2a fadd f10,f11,f12
1c4: fd 4b 60 2b fadd\. f10,f11,f12
1c8: ed 4b 60 2a fadds f10,f11,f12
1cc: ed 4b 60 2b fadds\. f10,f11,f12
1d0: fd 40 5e 9c fcfid f10,f11
1d4: fd 40 5e 9d fcfid\. f10,f11
1d8: fd 8a 58 40 fcmpo cr3,f10,f11
1dc: fd 84 28 00 fcmpu cr3,f4,f5
1e0: fd 4b 60 10 fcpsgn f10,f11,f12
1e4: fd 4b 60 11 fcpsgn\. f10,f11,f12
1e8: fd 40 5e 5c fctid f10,f11
1ec: fd 40 5e 5d fctid\. f10,f11
1f0: fd 40 5e 5e fctidz f10,f11
1f4: fd 40 5e 5f fctidz\. f10,f11
1f8: fd 40 58 1c fctiw f10,f11
1fc: fd 40 58 1d fctiw\. f10,f11
200: fd 40 58 1e fctiwz f10,f11
204: fd 40 58 1f fctiwz\. f10,f11
208: fd 4b 60 24 fdiv f10,f11,f12
20c: fd 4b 60 25 fdiv\. f10,f11,f12
210: ed 4b 60 24 fdivs f10,f11,f12
214: ed 4b 60 25 fdivs\. f10,f11,f12
218: fd 4b 6b 3a fmadd f10,f11,f12,f13
21c: fd 4b 6b 3b fmadd\. f10,f11,f12,f13
220: ed 4b 6b 3a fmadds f10,f11,f12,f13
224: ed 4b 6b 3b fmadds\. f10,f11,f12,f13
228: fc 60 20 90 fmr f3,f4
22c: fc 60 20 91 fmr\. f3,f4
230: fd 4b 6b 38 fmsub f10,f11,f12,f13
234: fd 4b 6b 39 fmsub\. f10,f11,f12,f13
238: ed 4b 6b 38 fmsubs f10,f11,f12,f13
23c: ed 4b 6b 39 fmsubs\. f10,f11,f12,f13
240: fd 4b 03 32 fmul f10,f11,f12
244: fd 4b 03 33 fmul\. f10,f11,f12
248: ed 4b 03 32 fmuls f10,f11,f12
24c: ed 4b 03 33 fmuls\. f10,f11,f12
250: fe 80 f1 10 fnabs f20,f30
254: fe 80 f1 11 fnabs\. f20,f30
258: fc 60 20 50 fneg f3,f4
25c: fc 60 20 51 fneg\. f3,f4
260: fd 4b 6b 3e fnmadd f10,f11,f12,f13
264: fd 4b 6b 3f fnmadd\. f10,f11,f12,f13
268: ed 4b 6b 3e fnmadds f10,f11,f12,f13
26c: ed 4b 6b 3f fnmadds\. f10,f11,f12,f13
270: fd 4b 6b 3c fnmsub f10,f11,f12,f13
274: fd 4b 6b 3d fnmsub\. f10,f11,f12,f13
278: ed 4b 6b 3c fnmsubs f10,f11,f12,f13
27c: ed 4b 6b 3d fnmsubs\. f10,f11,f12,f13
280: fd c0 78 30 fre f14,f15
284: fd c0 78 31 fre\. f14,f15
288: ed c0 78 30 fres f14,f15
28c: ed c0 78 31 fres\. f14,f15
290: fd 40 5b d0 frim f10,f11
294: fd 40 5b d1 frim\. f10,f11
298: fd 40 5b 10 frin f10,f11
29c: fd 40 5b 11 frin\. f10,f11
2a0: fd 40 5b 90 frip f10,f11
2a4: fd 40 5b 91 frip\. f10,f11
2a8: fd 40 5b 50 friz f10,f11
2ac: fd 40 5b 51 friz\. f10,f11
2b0: fc c0 38 18 frsp f6,f7
2b4: fd 00 48 19 frsp\. f8,f9
2b8: fd c0 78 34 frsqrte f14,f15
2bc: fd c0 78 35 frsqrte\. f14,f15
2c0: ed c0 78 34 frsqrtes f14,f15
2c4: ed c0 78 35 frsqrtes\. f14,f15
2c8: fd 4b 6b 2e fsel f10,f11,f12,f13
2cc: fd 4b 6b 2f fsel\. f10,f11,f12,f13
2d0: fd 40 58 2c fsqrt f10,f11
2d4: fd 40 58 2d fsqrt\. f10,f11
2d8: ed 40 58 2c fsqrts f10,f11
2dc: ed 40 58 2d fsqrts\. f10,f11
2e0: fd 4b 60 28 fsub f10,f11,f12
2e4: fd 4b 60 29 fsub\. f10,f11,f12
2e8: ed 4b 60 28 fsubs f10,f11,f12
2ec: ed 4b 60 29 fsubs\. f10,f11,f12
2f0: 7c 03 27 ac icbi r3,r4
2f4: 7e 11 91 cc icblc 16,r17,r18
2f8: 7c a8 48 2c icbt 5,r8,r9
2fc: 7d ae 7b cc icbtls 13,r14,r15
300: 7c 00 07 8c ici
304: 7c 00 07 8c ici
308: 7c 20 07 8c ici 1
30c: 7c 03 27 cc icread r3,r4
310: 50 83 65 36 rlwimi r3,r4,12,20,27
314: 7c 43 27 1e isel r2,r3,r4,28
318: 4c 00 01 2c isync
31c: 89 21 00 00 lbz r9,0\(r1\)
320: 8d 41 00 01 lbzu r10,1\(r1\)
324: 7e 95 b0 ee lbzux r20,r21,r22
328: 7c 64 28 ae lbzx r3,r4,r5
32c: ca a1 00 08 lfd f21,8\(r1\)
330: ce c1 00 10 lfdu f22,16\(r1\)
334: 7e 95 b4 ee lfdux f20,r21,r22
338: 7d ae 7c ae lfdx f13,r14,r15
33c: 7d 43 26 ae lfiwax f10,r3,r4
340: c2 61 00 00 lfs f19,0\(r1\)
344: c6 81 00 04 lfsu f20,4\(r1\)
348: 7d 4b 64 6e lfsux f10,r11,r12
34c: 7d 4b 64 2e lfsx f10,r11,r12
350: a9 e1 00 06 lha r15,6\(r1\)
354: ae 01 00 08 lhau r16,8\(r1\)
358: 7d 2a 5a ee lhaux r9,r10,r11
35c: 7d 2a 5a ae lhax r9,r10,r11
360: 7c 64 2e 2c lhbrx r3,r4,r5
364: a1 a1 00 00 lhz r13,0\(r1\)
368: a5 c1 00 02 lhzu r14,2\(r1\)
36c: 7e 96 c2 6e lhzux r20,r22,r24
370: 7e f8 ca 2e lhzx r23,r24,r25
374: b8 61 ff f0 lmw r3,-16\(r1\)
378: 7c 64 84 aa lswi r3,r4,16
37c: 7c 64 2c 2a lswx r3,r4,r5
380: 7c 64 28 28 lwarx r3,r4,r5
384: 7c 64 28 28 lwarx r3,r4,r5
388: 7c 64 28 29 lwarx r3,r4,r5,1
38c: 7c 64 2c 2c lwbrx r3,r4,r5
390: 80 c7 00 00 lwz r6,0\(r7\)
394: 84 61 00 10 lwzu r3,16\(r1\)
398: 7c 64 28 6e lwzux r3,r4,r5
39c: 7c 64 28 2e lwzx r3,r4,r5
3a0: 10 64 29 58 macchw r3,r4,r5
3a4: 10 64 29 59 macchw\. r3,r4,r5
3a8: 10 64 2d 58 macchwo r3,r4,r5
3ac: 10 64 2d 59 macchwo\. r3,r4,r5
3b0: 10 64 29 d8 macchws r3,r4,r5
3b4: 10 64 29 d9 macchws\. r3,r4,r5
3b8: 10 64 2d d8 macchwso r3,r4,r5
3bc: 10 64 2d d9 macchwso\. r3,r4,r5
3c0: 10 64 29 98 macchwsu r3,r4,r5
3c4: 10 64 29 99 macchwsu\. r3,r4,r5
3c8: 10 64 2d 98 macchwsuo r3,r4,r5
3cc: 10 64 2d 99 macchwsuo\. r3,r4,r5
3d0: 10 64 29 18 macchwu r3,r4,r5
3d4: 10 64 29 19 macchwu\. r3,r4,r5
3d8: 10 64 2d 18 macchwuo r3,r4,r5
3dc: 10 64 2d 19 macchwuo\. r3,r4,r5
3e0: 10 64 28 58 machhw r3,r4,r5
3e4: 10 64 28 59 machhw\. r3,r4,r5
3e8: 10 64 2c 58 machhwo r3,r4,r5
3ec: 10 64 2c 59 machhwo\. r3,r4,r5
3f0: 10 64 28 d8 machhws r3,r4,r5
3f4: 10 64 28 d9 machhws\. r3,r4,r5
3f8: 10 64 2c d8 machhwso r3,r4,r5
3fc: 10 64 2c d9 machhwso\. r3,r4,r5
400: 10 64 28 98 machhwsu r3,r4,r5
404: 10 64 28 99 machhwsu\. r3,r4,r5
408: 10 64 2c 98 machhwsuo r3,r4,r5
40c: 10 64 2c 99 machhwsuo\. r3,r4,r5
410: 10 64 28 18 machhwu r3,r4,r5
414: 10 64 28 19 machhwu\. r3,r4,r5
418: 10 64 2c 18 machhwuo r3,r4,r5
41c: 10 64 2c 19 machhwuo\. r3,r4,r5
420: 10 64 2b 58 maclhw r3,r4,r5
424: 10 64 2b 59 maclhw\. r3,r4,r5
428: 10 64 2f 58 maclhwo r3,r4,r5
42c: 10 64 2f 59 maclhwo\. r3,r4,r5
430: 10 64 2b d8 maclhws r3,r4,r5
434: 10 64 2b d9 maclhws\. r3,r4,r5
438: 10 64 2f d8 maclhwso r3,r4,r5
43c: 10 64 2f d9 maclhwso\. r3,r4,r5
440: 10 64 2b 98 maclhwsu r3,r4,r5
444: 10 64 2b 99 maclhwsu\. r3,r4,r5
448: 10 64 2f 98 maclhwsuo r3,r4,r5
44c: 10 64 2f 99 maclhwsuo\. r3,r4,r5
450: 10 64 2b 18 maclhwu r3,r4,r5
454: 10 64 2b 19 maclhwu\. r3,r4,r5
458: 10 64 2f 18 maclhwuo r3,r4,r5
45c: 10 64 2f 19 maclhwuo\. r3,r4,r5
460: 7c 00 06 ac mbar
464: 7c 00 06 ac mbar
468: 7c 20 06 ac mbar 1
46c: 4c 04 00 00 mcrf cr0,cr1
470: fd 90 00 80 mcrfs cr3,cr4
474: 7d 80 04 00 mcrxr cr3
478: 7c 60 00 26 mfcr r3
47c: 7c 60 00 26 mfcr r3
480: 7c aa 3a 86 mfdcr r5,234
484: 7c 64 02 46 mfdcrux r3,r4
488: 7c 85 02 06 mfdcrx r4,r5
48c: ff c0 04 8e mffs f30
490: ff e0 04 8f mffs\. f31
494: 7e 60 00 a6 mfmsr r19
498: 7c 78 00 26 mfocrf r3,128
49c: 7c 60 22 a6 mfspr r3,128
4a0: 7c 6c 42 e6 mftbl r3
4a4: 7c 00 04 ac msync
4a8: 7c 78 01 20 mtocrf 128,r3
4ac: 7c 6f f1 20 mtcr r3
4b0: 7d 10 6b 86 mtdcr 432,r8
4b4: 7c 83 03 46 mtdcrux r3,r4
4b8: 7c e6 03 06 mtdcrx r6,r7
4bc: fc 60 00 8c mtfsb0 so
4c0: fc 60 00 8d mtfsb0\. so
4c4: fc 60 00 4c mtfsb1 so
4c8: fc 60 00 4d mtfsb1\. so
4cc: fc 0c 55 8e mtfsf 6,f10
4d0: fc 0c 55 8e mtfsf 6,f10
4d4: fc 0d 55 8e mtfsf 6,f10,0,1
4d8: fe 0c 55 8e mtfsf 6,f10,1,0
4dc: fc 0c 5d 8f mtfsf\. 6,f11
4e0: fc 0c 5d 8f mtfsf\. 6,f11
4e4: fc 0d 5d 8f mtfsf\. 6,f11,0,1
4e8: fe 0c 5d 8f mtfsf\. 6,f11,1,0
4ec: ff 00 01 0c mtfsfi 6,0
4f0: ff 00 01 0c mtfsfi 6,0
4f4: ff 00 01 0c mtfsfi 6,0
4f8: ff 01 01 0c mtfsfi 6,0,1
4fc: ff 00 f1 0d mtfsfi\. 6,15
500: ff 00 f1 0d mtfsfi\. 6,15
504: ff 00 f1 0d mtfsfi\. 6,15
508: ff 01 f1 0d mtfsfi\. 6,15,1
50c: 7d 40 01 24 mtmsr r10
510: 7c 78 01 20 mtocrf 128,r3
514: 7c 60 23 a6 mtspr 128,r3
518: 10 64 29 50 mulchw r3,r4,r5
51c: 10 64 29 51 mulchw\. r3,r4,r5
520: 10 64 29 10 mulchwu r3,r4,r5
524: 10 64 29 11 mulchwu\. r3,r4,r5
528: 10 64 28 50 mulhhw r3,r4,r5
52c: 10 64 28 51 mulhhw\. r3,r4,r5
530: 10 64 28 10 mulhhwu r3,r4,r5
534: 10 64 28 11 mulhhwu\. r3,r4,r5
538: 7c 64 28 96 mulhw r3,r4,r5
53c: 7c 64 28 97 mulhw\. r3,r4,r5
540: 7c 64 28 16 mulhwu r3,r4,r5
544: 7c 64 28 17 mulhwu\. r3,r4,r5
548: 10 64 2b 50 mullhw r3,r4,r5
54c: 10 64 2b 51 mullhw\. r3,r4,r5
550: 10 64 2b 10 mullhwu r3,r4,r5
554: 10 64 2b 11 mullhwu\. r3,r4,r5
558: 1c 64 00 05 mulli r3,r4,5
55c: 7c 64 29 d6 mullw r3,r4,r5
560: 7c 64 29 d7 mullw\. r3,r4,r5
564: 7c 64 2d d6 mullwo r3,r4,r5
568: 7c 64 2d d7 mullwo\. r3,r4,r5
56c: 7f bc f3 b8 nand r28,r29,r30
570: 7f bc f3 b9 nand\. r28,r29,r30
574: 7c 64 00 d0 neg r3,r4
578: 7c 64 00 d1 neg\. r3,r4
57c: 7e 11 04 d0 nego r16,r17
580: 7e 53 04 d1 nego\. r18,r19
584: 10 64 29 5c nmacchw r3,r4,r5
588: 10 64 29 5d nmacchw\. r3,r4,r5
58c: 10 64 2d 5c nmacchwo r3,r4,r5
590: 10 64 2d 5d nmacchwo\. r3,r4,r5
594: 10 64 29 dc nmacchws r3,r4,r5
598: 10 64 29 dd nmacchws\. r3,r4,r5
59c: 10 64 2d dc nmacchwso r3,r4,r5
5a0: 10 64 2d dd nmacchwso\. r3,r4,r5
5a4: 10 64 28 5c nmachhw r3,r4,r5
5a8: 10 64 28 5d nmachhw\. r3,r4,r5
5ac: 10 64 2c 5c nmachhwo r3,r4,r5
5b0: 10 64 2c 5d nmachhwo\. r3,r4,r5
5b4: 10 64 28 dc nmachhws r3,r4,r5
5b8: 10 64 28 dd nmachhws\. r3,r4,r5
5bc: 10 64 2c dc nmachhwso r3,r4,r5
5c0: 10 64 2c dd nmachhwso\. r3,r4,r5
5c4: 10 64 2b 5c nmaclhw r3,r4,r5
5c8: 10 64 2b 5d nmaclhw\. r3,r4,r5
5cc: 10 64 2f 5c nmaclhwo r3,r4,r5
5d0: 10 64 2f 5d nmaclhwo\. r3,r4,r5
5d4: 10 64 2b dc nmaclhws r3,r4,r5
5d8: 10 64 2b dd nmaclhws\. r3,r4,r5
5dc: 10 64 2f dc nmaclhwso r3,r4,r5
5e0: 10 64 2f dd nmaclhwso\. r3,r4,r5
5e4: 7e b4 b0 f8 nor r20,r21,r22
5e8: 7e b4 b0 f9 nor\. r20,r21,r22
5ec: 7c 40 23 78 or r0,r2,r4
5f0: 7d cc 83 79 or\. r12,r14,r16
5f4: 7e 0f 8b 38 orc r15,r16,r17
5f8: 7e 72 a3 39 orc\. r18,r19,r20
5fc: 60 21 00 00 ori r1,r1,0
600: 64 83 de ad oris r3,r4,57005
604: 7c 83 00 f4 popcntb r3,r4
608: 7c 83 01 34 prtyw r3,r4
60c: 4c 00 00 66 rfci
610: 4c 00 00 64 rfi
614: 4c 00 00 4c rfmci
618: 50 83 65 36 rlwimi r3,r4,12,20,27
61c: 50 83 65 37 rlwimi\. r3,r4,12,20,27
620: 54 83 00 36 rlwinm r3,r4,0,0,27
624: 54 83 d1 be rlwinm r3,r4,26,6,31
628: 54 83 20 26 rlwinm r3,r4,4,0,19
62c: 54 83 00 37 rlwinm\. r3,r4,0,0,27
630: 5c 83 28 3e rotlw r3,r4,r5
634: 5c 83 28 3f rotlw\. r3,r4,r5
638: 5c 83 28 3e rotlw r3,r4,r5
63c: 5c 83 28 3f rotlw\. r3,r4,r5
640: 44 00 00 02 sc
644: 7c 83 28 30 slw r3,r4,r5
648: 7c 83 28 31 slw\. r3,r4,r5
64c: 7c 83 2e 30 sraw r3,r4,r5
650: 7c 83 2e 31 sraw\. r3,r4,r5
654: 7c 83 86 70 srawi r3,r4,16
658: 7c 83 86 71 srawi\. r3,r4,16
65c: 7c 83 2c 30 srw r3,r4,r5
660: 7c 83 2c 31 srw\. r3,r4,r5
664: 54 83 d1 be rlwinm r3,r4,26,6,31
668: 99 61 00 02 stb r11,2\(r1\)
66c: 9d 81 00 03 stbu r12,3\(r1\)
670: 7d ae 79 ee stbux r13,r14,r15
674: 7c 64 29 ae stbx r3,r4,r5
678: db 21 00 20 stfd f25,32\(r1\)
67c: df 41 00 28 stfdu f26,40\(r1\)
680: 7c 01 15 ee stfdux f0,r1,r2
684: 7f be fd ae stfdx f29,r30,r31
688: 7d 43 27 ae stfiwx f10,r3,r4
68c: d2 e1 00 14 stfs f23,20\(r1\)
690: d7 01 00 18 stfsu f24,24\(r1\)
694: 7f 5b e5 6e stfsux f26,r27,r28
698: 7e f8 cd 2e stfsx f23,r24,r25
69c: b2 21 00 0a sth r17,10\(r1\)
6a0: 7c c7 47 2c sthbrx r6,r7,r8
6a4: b6 41 00 0c sthu r18,12\(r1\)
6a8: 7e b6 bb 6e sthux r21,r22,r23
6ac: 7d 8d 73 2e sthx r12,r13,r14
6b0: bc c1 ff f0 stmw r6,-16\(r1\)
6b4: 7c 64 85 aa stswi r3,r4,16
6b8: 7c 64 2d 2a stswx r3,r4,r5
6bc: 90 c7 ff f0 stw r6,-16\(r7\)
6c0: 7c 64 2d 2c stwbrx r3,r4,r5
6c4: 7c 64 29 2d stwcx\. r3,r4,r5
6c8: 94 61 00 10 stwu r3,16\(r1\)
6cc: 7c 64 29 6e stwux r3,r4,r5
6d0: 7c 64 29 2e stwx r3,r4,r5
6d4: 7c 64 28 50 subf r3,r4,r5
6d8: 7c 64 28 51 subf\. r3,r4,r5
6dc: 7c 64 28 10 subfc r3,r4,r5
6e0: 7c 64 28 11 subfc\. r3,r4,r5
6e4: 7c 64 2c 10 subfco r3,r4,r5
6e8: 7c 64 2c 11 subfco\. r3,r4,r5
6ec: 7c 64 29 10 subfe r3,r4,r5
6f0: 7c 64 29 11 subfe\. r3,r4,r5
6f4: 7c 64 2d 10 subfeo r3,r4,r5
6f8: 7c 64 2d 11 subfeo\. r3,r4,r5
6fc: 20 64 00 05 subfic r3,r4,5
700: 7c 64 01 d0 subfme r3,r4
704: 7c 64 01 d1 subfme\. r3,r4
708: 7c 64 05 d0 subfmeo r3,r4
70c: 7c 64 05 d1 subfmeo\. r3,r4
710: 7c 64 2c 50 subfo r3,r4,r5
714: 7c 64 2c 51 subfo\. r3,r4,r5
718: 7c 64 01 90 subfze r3,r4
71c: 7c 64 01 91 subfze\. r3,r4
720: 7c 64 05 90 subfzeo r3,r4
724: 7c 64 05 91 subfzeo\. r3,r4
728: 7c 07 46 24 tlbivax r7,r8
72c: 7c 22 3f 64 tlbre r1,r2,7
730: 7c 0b 67 24 tlbsx r11,r12
734: 7d 8d 77 24 tlbsx r12,r13,r14
738: 7d 8d 77 25 tlbsx\. r12,r13,r14
73c: 7c 00 04 6c tlbsync
740: 7c 00 07 a4 tlbwe
744: 7c 00 07 a4 tlbwe
748: 7c 21 0f a4 tlbwe r1,r1,1
74c: 7f e0 00 08 trap
750: 7f e0 00 08 trap
754: 7c 83 20 08 tweq r3,r4
758: 7c a3 20 08 twlge r3,r4
75c: 7c 83 20 08 tweq r3,r4
760: 0d 03 00 0f twgti r3,15
764: 0c c3 00 0f twllei r3,15
768: 0d 03 00 0f twgti r3,15
76c: 7c a3 20 08 twlge r3,r4
770: 0c c3 00 0f twllei r3,15
774: 7c 60 01 06 wrtee r3
778: 7c 00 81 46 wrteei 1
77c: 7f dd fa 78 xor r29,r30,r31
780: 7f dd fa 79 xor\. r29,r30,r31
784: 68 83 de ad xori r3,r4,57005
788: 6c 83 de ad xoris r3,r4,57005

485
gas/testsuite/gas/ppc/476.s Normal file
View File

@ -0,0 +1,485 @@
.section ".text"
ppc476:
add 3,4,5
add. 3,4,5
addc 3,4,5
addc. 3,4,5
addco 3,4,5
addco. 3,4,5
adde 3,4,5
adde. 3,4,5
addeo 3,4,5
addeo. 3,4,5
addi 3,4,-128
addic 3,4,-128
addic. 3,4,-128
addis 3,4,-128
addme 3,4
addme. 3,4
addmeo 3,4
addmeo. 3,4
addo 3,4,5
addo. 3,4,5
addze 3,4
addze. 3,4
addzeo 3,4
addzeo. 3,4
and 3,4,5
and. 3,4,5
andc 13,14,15
andc. 16,17,18
andi. 3,4,0xdead
andis. 3,4,0xdead
ba label_abs
bc 0,1,foo
bca 4,5,foo_abs
bcctr 12,0,0
bcctr 4,10,0
bcctr 4,6
bcctr 4,6,0
bcctrl 12,0,0
bcctrl 4,10,0
bcctrl 4,6
bcctrl 4,6,0
bcl 2,3,foo
bclr 12,0,0
bclr 4,10,0
bclr 4,6
bclr 4,6,0
bclrl 12,0,0
bclrl 4,10,0
bclrl 4,6
bclrl 4,6,0
b label
bl label
clrrwi 3,4,4
cmp 0,0,3,4
cmp 7,0,3,4
cmpb 3,4,5
cmpb 3,4,5
cmpi 0,0,3,-167
cmpi 7,0,3,-167
cmpl 0,0,3,4
cmpl 7,0,3,4
cmpli 0,0,3,167
cmpli 7,0,3,167
cmplw 3,4
cmplwi 3,167
cmpw 3,4
cmpwi 3,-167
cntlzw 10,11
cntlzw. 10,11
crand 4,5,6
crandc 3,4,5
creqv 7,0,1
crnand 1,2,3
crnor 0,1,2
cror 5,6,7
crorc 2,3,4
crxor 6,7,0
dcba 9, 10
dcbf 6,7
dcbf 6,7,0
dcbi 6,7
dcblc 4, 5, 6
dcbst 6,7
dcbt 0,5,6
dcbt 5,6
dcbt 8,5,6
dcbtls 7, 8, 9
dcbtst 0,6,7
dcbtst 6,7
dcbtst 9,6,7
dcbtstls 10, 11, 12
dcbz 1,2
dcbz 5,6
divw 10,11,12
divw. 11,12,13
divwo 10,11,12
divwo. 11,12,13
divwu 10,11,12
divwu. 11,12,13
divwuo 10,11,12
divwuo. 11,12,13
dlmzb 3,4,5
dlmzb. 3,4,5
eqv 10,11,12
eqv. 10,11,12
extlwi 3,4,20,4
extsb 3,4
extsb. 3,4
extsh 3,4
extsh. 3,4
fabs 21,31
fabs. 21,31
fadd 10,11,12
fadd. 10,11,12
fadds 10,11,12
fadds. 10,11,12
fcfid 10,11
fcfid. 10,11
fcmpo 3,10,11
fcmpu 3,4,5
fcpsgn 10,11,12
fcpsgn. 10,11,12
fctid 10,11
fctid. 10,11
fctidz 10,11
fctidz. 10,11
fctiw 10,11
fctiw. 10,11
fctiwz 10,11
fctiwz. 10,11
fdiv 10,11,12
fdiv. 10,11,12
fdivs 10,11,12
fdivs. 10,11,12
fmadd 10,11,12,13
fmadd. 10,11,12,13
fmadds 10,11,12,13
fmadds. 10,11,12,13
fmr 3,4
fmr. 3,4
fmsub 10,11,12,13
fmsub. 10,11,12,13
fmsubs 10,11,12,13
fmsubs. 10,11,12,13
fmul 10,11,12
fmul. 10,11,12
fmuls 10,11,12
fmuls. 10,11,12
fnabs 20,30
fnabs. 20,30
fneg 3,4
fneg. 3,4
fnmadd 10,11,12,13
fnmadd. 10,11,12,13
fnmadds 10,11,12,13
fnmadds. 10,11,12,13
fnmsub 10,11,12,13
fnmsub. 10,11,12,13
fnmsubs 10,11,12,13
fnmsubs. 10,11,12,13
fre 14,15
fre. 14,15
fres 14,15
fres. 14,15
frim 10,11
frim. 10,11
frin 10,11
frin. 10,11
frip 10,11
frip. 10,11
friz 10,11
friz. 10,11
frsp 6,7
frsp. 8,9
frsqrte 14,15
frsqrte. 14,15
frsqrtes 14,15
frsqrtes. 14,15
fsel 10,11,12,13
fsel. 10,11,12,13
fsqrt 10,11
fsqrt. 10,11
fsqrts 10,11
fsqrts. 10,11
fsub 10,11,12
fsub. 10,11,12
fsubs 10,11,12
fsubs. 10,11,12
icbi 3,4
icblc 16, 17, 18
icbt 5, 8, 9
icbtls 13, 14, 15
ici
ici 0
ici 1
icread 3,4
inslwi 3,4,8,20
isel 2,3,4,28
isync
lbz 9,0(1)
lbzu 10,1(1)
lbzux 20,21,22
lbzx 3,4,5
lfd 21,8(1)
lfdu 22,16(1)
lfdux 20,21,22
lfdx 13,14,15
lfiwax 10,3,4
lfs 19,0(1)
lfsu 20,4(1)
lfsux 10,11,12
lfsx 10,11,12
lha 15,6(1)
lhau 16,8(1)
lhaux 9,10,11
lhax 9,10,11
lhbrx 3,4,5
lhz 13,0(1)
lhzu 14,2(1)
lhzux 20,22,24
lhzx 23,24,25
lmw 3,-16(1)
lswi 3,4,16
lswx 3,4,5
lwarx 3,4,5
lwarx 3,4,5,0
lwarx 3,4,5,1
lwbrx 3,4,5
lwz 6,0(7)
lwzu 3,16(1)
lwzux 3,4,5
lwzx 3,4,5
macchw 3,4,5
macchw. 3,4,5
macchwo 3,4,5
macchwo. 3,4,5
macchws 3,4,5
macchws. 3,4,5
macchwso 3,4,5
macchwso. 3,4,5
macchwsu 3,4,5
macchwsu. 3,4,5
macchwsuo 3,4,5
macchwsuo. 3,4,5
macchwu 3,4,5
macchwu. 3,4,5
macchwuo 3,4,5
macchwuo. 3,4,5
machhw 3,4,5
machhw. 3,4,5
machhwo 3,4,5
machhwo. 3,4,5
machhws 3,4,5
machhws. 3,4,5
machhwso 3,4,5
machhwso. 3,4,5
machhwsu 3,4,5
machhwsu. 3,4,5
machhwsuo 3,4,5
machhwsuo. 3,4,5
machhwu 3,4,5
machhwu. 3,4,5
machhwuo 3,4,5
machhwuo. 3,4,5
maclhw 3,4,5
maclhw. 3,4,5
maclhwo 3,4,5
maclhwo. 3,4,5
maclhws 3,4,5
maclhws. 3,4,5
maclhwso 3,4,5
maclhwso. 3,4,5
maclhwsu 3,4,5
maclhwsu. 3,4,5
maclhwsuo 3,4,5
maclhwsuo. 3,4,5
maclhwu 3,4,5
maclhwu. 3,4,5
maclhwuo 3,4,5
maclhwuo. 3,4,5
mbar
mbar 0
mbar 1
mcrf 0,1
mcrfs 3,4
mcrxr 3
mfcr 3
mfcr 3
mfdcr 5, 234
mfdcrux 3,4
mfdcrx 4, 5
mffs 30
mffs. 31
mfmsr 19
mfocrf 3,0x80
mfspr 3,0x80
mftb 3
msync
mtcrf 0x80,3
mtcrf 0xff,3
mtdcr 432, 8
mtdcrux 3,4
mtdcrx 6, 7
mtfsb0 3
mtfsb0. 3
mtfsb1 3
mtfsb1. 3
mtfsf 6,10
mtfsf 6,10,0,0
mtfsf 6,10,0,1
mtfsf 6,10,1,0
mtfsf. 6,11
mtfsf. 6,11,0,0
mtfsf. 6,11,0,1
mtfsf. 6,11,1,0
mtfsfi 6,0
mtfsfi 6,0
mtfsfi 6,0,0
mtfsfi 6,0,1
mtfsfi. 6,15
mtfsfi. 6,15
mtfsfi. 6,15,0
mtfsfi. 6,15,1
mtmsr 10
mtocrf 0x80,3
mtspr 0x80,3
mulchw 3,4,5
mulchw. 3,4,5
mulchwu 3,4,5
mulchwu. 3,4,5
mulhhw 3,4,5
mulhhw. 3,4,5
mulhhwu 3,4,5
mulhhwu. 3,4,5
mulhw 3,4,5
mulhw. 3,4,5
mulhwu 3,4,5
mulhwu. 3,4,5
mullhw 3,4,5
mullhw. 3,4,5
mullhwu 3,4,5
mullhwu. 3,4,5
mulli 3,4,5
mullw 3,4,5
mullw. 3,4,5
mullwo 3,4,5
mullwo. 3,4,5
nand 28,29,30
nand. 28,29,30
neg 3,4
neg. 3,4
nego 16,17
nego. 18,19
nmacchw 3,4,5
nmacchw. 3,4,5
nmacchwo 3,4,5
nmacchwo. 3,4,5
nmacchws 3,4,5
nmacchws. 3,4,5
nmacchwso 3,4,5
nmacchwso. 3,4,5
nmachhw 3,4,5
nmachhw. 3,4,5
nmachhwo 3,4,5
nmachhwo. 3,4,5
nmachhws 3,4,5
nmachhws. 3,4,5
nmachhwso 3,4,5
nmachhwso. 3,4,5
nmaclhw 3,4,5
nmaclhw. 3,4,5
nmaclhwo 3,4,5
nmaclhwo. 3,4,5
nmaclhws 3,4,5
nmaclhws. 3,4,5
nmaclhwso 3,4,5
nmaclhwso. 3,4,5
nor 20,21,22
nor. 20,21,22
or 0,2,4
or. 12,14,16
orc 15,16,17
orc. 18,19,20
ori 1,1,0
oris 3,4,0xdead
popcntb 3,4
prtyw 3,4
rfci
rfi
rfmci
rlwimi 3,4,12,20,27
rlwimi. 3,4,12,20,27
rlwinm 3,4,0,0,27
rlwinm 3,4,26,6,31
rlwinm 3,4,4,0,19
rlwinm. 3,4,0,0,27
rlwnm 3,4,5,0,31
rlwnm. 3,4,5,0,31
rotlw 3,4,5
rotlw. 3,4,5
sc
slw 3,4,5
slw. 3,4,5
sraw 3,4,5
sraw. 3,4,5
srawi 3,4,16
srawi. 3,4,16
srw 3,4,5
srw. 3,4,5
srwi 3,4,6
stb 11,2(1)
stbu 12,3(1)
stbux 13,14,15
stbx 3,4,5
stfd 25,32(1)
stfdu 26,40(1)
stfdux 0,1,2
stfdx 29,30,31
stfiwx 10,3,4
stfs 23,20(1)
stfsu 24,24(1)
stfsux 26,27,28
stfsx 23,24,25
sth 17,10(1)
sthbrx 6,7,8
sthu 18,12(1)
sthux 21,22,23
sthx 12,13,14
stmw 6,-16(1)
stswi 3,4,16
stswx 3,4,5
stw 6,-16(7)
stwbrx 3,4,5
stwcx. 3,4,5
stwu 3,16(1)
stwux 3,4,5
stwx 3,4,5
subf 3,4,5
subf. 3,4,5
subfc 3,4,5
subfc. 3,4,5
subfco 3,4,5
subfco. 3,4,5
subfe 3,4,5
subfe. 3,4,5
subfeo 3,4,5
subfeo. 3,4,5
subfic 3,4,5
subfme 3,4
subfme. 3,4
subfmeo 3,4
subfmeo. 3,4
subfo 3,4,5
subfo. 3,4,5
subfze 3,4
subfze. 3,4
subfzeo 3,4
subfzeo. 3,4
tlbivax 7, 8
tlbre 1, 2, 7
tlbsx 11, 12
tlbsx 12, 13, 14
tlbsx. 12, 13, 14
tlbsync
tlbwe
tlbwe 0,0,0
tlbwe 1,1,1
trap
tw 31,0,0
tw 4,3,4
tw 5,3,4
tweq 3,4
twgti 3,15
twi 6,3,15
twi 8,3,15
twlge 3,4
twllei 3,15
wrtee 3
wrteei 1
xor 29,30,31
xor. 29,30,31
xori 3,4,0xdead
xoris 3,4,0xdead

View File

@ -49,5 +49,6 @@ if { [istarget powerpc*-*-*] } then {
run_dump_test "power6"
run_dump_test "power7"
run_dump_test "vsx"
run_dump_test "476"
}
}

View File

@ -1,3 +1,7 @@
2009-10-02 Peter Bergner <bergner@vnet.ibm.com>
* ppc.h (PPC_OPCODE_476): Define.
2009-10-01 Peter Bergner <bergner@vnet.ibm.com>
* ppc.h (PPC_OPCODE_A2): Rename from PPC_OPCODE_PPCA2.

View File

@ -170,6 +170,9 @@ extern const int powerpc_num_opcodes;
/* Opcode is supported by A2. */
#define PPC_OPCODE_A2 0x100000000ULL
/* Opcode is supported by PowerPC 476 processor. */
#define PPC_OPCODE_476 0x200000000ULL
/* A macro to extract the major opcode from an instruction. */
#define PPC_OP(i) (((i) >> 26) & 0x3f)

View File

@ -1,3 +1,9 @@
2009-10-02 Peter Bergner <bergner@vnet.ibm.com>
* ppc-dis.c (ppc_opts): Add "476" entry.
* ppc-opc.c (PPC476): Define.
(powerpc_opcodes): Update mnemonics where required for 476.
2009-10-01 Peter Bergner <bergner@vnet.ibm.com>
* ppc-opc.c (PPCA2): Use renamed mask PPC_OPCODE_A2.

View File

@ -62,6 +62,10 @@ struct ppc_mopt ppc_opts[] = {
{ "464", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_32
| PPC_OPCODE_440 | PPC_OPCODE_ISEL | PPC_OPCODE_RFMCI),
0 },
{ "476", (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_ISEL
| PPC_OPCODE_440 | PPC_OPCODE_476 | PPC_OPCODE_POWER4
| PPC_OPCODE_POWER5),
0 },
{ "601", (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_601
| PPC_OPCODE_32),
0 },

View File

@ -1906,6 +1906,7 @@ extract_dm (unsigned long insn,
#define PPC405 PPC_OPCODE_405
#define PPC440 PPC_OPCODE_440
#define PPC464 PPC440
#define PPC476 PPC_OPCODE_476
#define PPC750 PPC
#define PPC7450 PPC
#define PPC860 PPC
@ -1957,7 +1958,7 @@ extract_dm (unsigned long insn,
constrained otherwise by disassembler operation. */
const struct powerpc_opcode powerpc_opcodes[] = {
{"attn", X(0,256), X_MASK, POWER4|PPCA2, PPCNONE, {0}},
{"attn", X(0,256), X_MASK, POWER4|PPCA2, PPC476, {0}},
{"tdlgti", OPTO(2,TOLGT), OPTO_MASK, PPC64, PPCNONE, {RA, SI}},
{"tdllti", OPTO(2,TOLLT), OPTO_MASK, PPC64, PPCNONE, {RA, SI}},
{"tdeqi", OPTO(2,TOEQ), OPTO_MASK, PPC64, PPCNONE, {RA, SI}},
@ -2383,8 +2384,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"evmhessf", VX (4,1027), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"vand", VX (4,1028), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vcmpequb.", VXR(4, 6,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi0fcm.", APU(4, 515,0), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi0fcm", APU(4, 515,1), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi0fcm.", APU(4, 515,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi0fcm", APU(4, 515,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"evmhossf", VX (4,1031), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmheumi", VX (4,1032), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmhesmi", VX (4,1033), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
@ -2410,8 +2411,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"vavguh", VX (4,1090), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vandc", VX (4,1092), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vcmpequh.", VXR(4, 70,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi1fcm.", APU(4, 547,0), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi1fcm", APU(4, 547,1), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi1fcm.", APU(4, 547,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi1fcm", APU(4, 547,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"evmwhssf", VX (4,1095), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmwlumi", VX (4,1096), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"vminfp", VX (4,1098), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
@ -2442,8 +2443,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"vavguw", VX (4,1154), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vor", VX (4,1156), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vcmpequw.", VXR(4, 134,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi2fcm.", APU(4, 579,0), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi2fcm", APU(4, 579,1), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi2fcm.", APU(4, 579,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi2fcm", APU(4, 579,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"machhwsuo", XO (4, 76,1,0),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"machhwsuo.", XO (4, 76,1,1),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"ps_merge10", XOPS(4,592,0), XOPS_MASK, PPCPS, PPCNONE, {FRT, FRA, FRB}},
@ -2456,8 +2457,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"vxor", VX (4,1220), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"evdivws", VX (4,1222), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"vcmpeqfp.", VXR(4, 198,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi3fcm.", APU(4, 611,0), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi3fcm", APU(4, 611,1), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi3fcm.", APU(4, 611,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi3fcm", APU(4, 611,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"evdivwu", VX (4,1223), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evaddumiaaw", VX (4,1224), VX_MASK, PPCSPE, PPCNONE, {RS, RA}},
{"evaddsmiaaw", VX (4,1225), VX_MASK, PPCSPE, PPCNONE, {RS, RA}},
@ -2476,8 +2477,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"evmhousiaaw", VX (4,1284), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"vnor", VX (4,1284), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"evmhossiaaw", VX (4,1285), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"udi4fcm.", APU(4, 643,0), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi4fcm", APU(4, 643,1), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi4fcm.", APU(4, 643,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi4fcm", APU(4, 643,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"evmhossfaaw", VX (4,1287), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmheumiaaw", VX (4,1288), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmhesmiaaw", VX (4,1289), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
@ -2496,8 +2497,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"evmwlusiaaw", VX (4,1344), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmwlssiaaw", VX (4,1345), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"vavgsh", VX (4,1346), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi5fcm.", APU(4, 675,0), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi5fcm", APU(4, 675,1), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi5fcm.", APU(4, 675,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi5fcm", APU(4, 675,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"evmwlumiaaw", VX (4,1352), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmwlsmiaaw", VX (4,1353), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmwssfaa", VX (4,1363), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
@ -2515,8 +2516,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"evmhessfanw", VX (4,1411), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmhousianw", VX (4,1412), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmhossianw", VX (4,1413), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"udi6fcm.", APU(4, 707,0), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi6fcm", APU(4, 707,1), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi6fcm.", APU(4, 707,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi6fcm", APU(4, 707,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"evmhossfanw", VX (4,1415), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmheumianw", VX (4,1416), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmhesmianw", VX (4,1417), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
@ -2535,8 +2536,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"evmwlusianw", VX (4,1472), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmwlssianw", VX (4,1473), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"vcmpgefp.", VXR(4, 454,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi7fcm.", APU(4, 739,0), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi7fcm", APU(4, 739,1), APU_MASK, PPC405|PPC440, PPCNONE, {URT, URA, URB}},
{"udi7fcm.", APU(4, 739,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi7fcm", APU(4, 739,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"evmwlumianw", VX (4,1480), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmwlsmianw", VX (4,1481), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
{"evmwssfan", VX (4,1491), VX_MASK, PPCSPE, PPCNONE, {RS, RA, RB}},
@ -2550,48 +2551,48 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"vsububs", VX (4,1536), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"mfvscr", VX (4,1540), VX_MASK, PPCVEC, PPCNONE, {VD}},
{"vcmpgtub.", VXR(4, 518,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi8fcm.", APU(4, 771,0), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi8fcm", APU(4, 771,1), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi8fcm.", APU(4, 771,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi8fcm", APU(4, 771,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"vsum4ubs", VX (4,1544), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vsubuhs", VX (4,1600), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"mtvscr", VX (4,1604), VX_MASK, PPCVEC, PPCNONE, {VB}},
{"vcmpgtuh.", VXR(4, 582,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vsum4shs", VX (4,1608), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi9fcm.", APU(4, 804,0), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi9fcm", APU(4, 804,1), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi9fcm.", APU(4, 804,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi9fcm", APU(4, 804,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"vsubuws", VX (4,1664), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vcmpgtuw.", VXR(4, 646,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi10fcm.", APU(4, 835,0), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi10fcm", APU(4, 835,1), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi10fcm.", APU(4, 835,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi10fcm", APU(4, 835,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"vsum2sws", VX (4,1672), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vcmpgtfp.", VXR(4, 710,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi11fcm.", APU(4, 867,0), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi11fcm", APU(4, 867,1), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi11fcm.", APU(4, 867,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi11fcm", APU(4, 867,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"vsubsbs", VX (4,1792), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vcmpgtsb.", VXR(4, 774,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi12fcm.", APU(4, 899,0), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi12fcm", APU(4, 899,1), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi12fcm.", APU(4, 899,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi12fcm", APU(4, 899,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"vsum4sbs", VX (4,1800), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"maclhwuo", XO (4, 396,1,0),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"maclhwuo.", XO (4, 396,1,1),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"vsubshs", VX (4,1856), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vcmpgtsh.", VXR(4, 838,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi13fcm.", APU(4, 931,0), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi13fcm", APU(4, 931,1), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi13fcm.", APU(4, 931,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi13fcm", APU(4, 931,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"maclhwo", XO (4, 428,1,0),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"maclhwo.", XO (4, 428,1,1),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"nmaclhwo", XO (4, 430,1,0),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"nmaclhwo.", XO (4, 430,1,1),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"vsubsws", VX (4,1920), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"vcmpgtsw.", VXR(4, 902,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi14fcm.", APU(4, 963,0), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi14fcm", APU(4, 963,1), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi14fcm.", APU(4, 963,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi14fcm", APU(4, 963,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"vsumsws", VX (4,1928), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"maclhwsuo", XO (4, 460,1,0),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"maclhwsuo.", XO (4, 460,1,1),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"vcmpbfp.", VXR(4, 966,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi15fcm.", APU(4, 995,0), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi15fcm", APU(4, 995,1), APU_MASK, PPC440, PPCNONE, {URT, URA, URB}},
{"udi15fcm.", APU(4, 995,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi15fcm", APU(4, 995,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"maclhwso", XO (4, 492,1,0),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"maclhwso.", XO (4, 492,1,1),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
{"nmaclhwso", XO (4, 494,1,0),XO_MASK, PPC405|PPC440, PPCNONE, {RT, RA, RB}},
@ -3150,11 +3151,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"crnot", XL(19,33), XL_MASK, PPCCOM, PPCNONE, {BT, BA, BBA}},
{"crnor", XL(19,33), XL_MASK, COM, PPCNONE, {BT, BA, BB}},
{"rfmci", X(19,38), 0xffffffff, PPCRFMCI|PPCA2, PPCNONE, {0}},
{"rfmci", X(19,38), 0xffffffff, PPCRFMCI|PPCA2|PPC476, PPCNONE, {0}},
{"rfdi", XL(19,39), 0xffffffff, E500MC, PPCNONE, {0}},
{"rfi", XL(19,50), 0xffffffff, COM, PPCNONE, {0}},
{"rfci", XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2, PPCNONE, {0}},
{"rfci", XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2|PPC476, PPCNONE, {0}},
{"rfsvc", XL(19,82), 0xffffffff, POWER, PPCNONE, {0}},
@ -3174,7 +3175,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"crand", XL(19,257), XL_MASK, COM, PPCNONE, {BT, BA, BB}},
{"hrfid", XL(19,274), 0xffffffff, POWER5|CELL, PPCNONE, {0}},
{"hrfid", XL(19,274), 0xffffffff, POWER5|CELL, PPC476, {0}},
{"crset", XL(19,289), XL_MASK, PPCCOM, PPCNONE, {BT, BAT, BBA}},
{"creqv", XL(19,289), XL_MASK, COM, PPCNONE, {BT, BA, BB}},
@ -3487,7 +3488,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"ldx", X(31,21), X_MASK, PPC64, PPCNONE, {RT, RA0, RB}},
{"icbt", X(31,22), X_MASK, BOOKE|PPCE300|PPCA2, PPCNONE, {CT, RA, RB}},
{"icbt", X(31,22), X_MASK, BOOKE|PPCE300|PPCA2|PPC476, PPCNONE, {CT, RA, RB}},
{"lwzx", X(31,23), X_MASK, PPCCOM, PPCNONE, {RT, RA0, RB}},
{"lx", X(31,23), X_MASK, PWRCOM, PPCNONE, {RT, RA, RB}},
@ -3593,7 +3594,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"ldarx", X(31,84), XEH_MASK, PPC64, PPCNONE, {RT, RA0, RB, EH}},
{"dcbfl", XOPL(31,86,1), XRT_MASK, POWER5, PPCNONE, {RA, RB}},
{"dcbfl", XOPL(31,86,1), XRT_MASK, POWER5, PPC476, {RA, RB}},
{"dcbf", X(31,86), XLRT_MASK, PPC, PPCNONE, {RA, RB, L}},
{"lbzx", X(31,87), X_MASK, COM, PPCNONE, {RT, RA0, RB}},
@ -3626,9 +3627,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"dcbfep", XRT(31,127,0), XRT_MASK, E500MC|PPCA2, PPCNONE, {RA, RB}},
{"wrtee", X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2, PPCNONE, {RS}},
{"wrtee", X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2|PPC476, PPCNONE, {RS}},
{"dcbtstls", X(31,134), X_MASK, PPCCHLK, PPCNONE, {CT, RA, RB}},
{"dcbtstls", X(31,134), X_MASK, PPCCHLK|PPC476, PPCNONE, {CT, RA, RB}},
{"stvebx", X(31,135), X_MASK, PPCVEC, PPCNONE, {VS, RA, RB}},
{"stbfcmx", APU(31,135,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}},
@ -3667,15 +3668,15 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"sle", XRC(31,153,0), X_MASK, M601, PPCNONE, {RA, RS, RB}},
{"sle.", XRC(31,153,1), X_MASK, M601, PPCNONE, {RA, RS, RB}},
{"prtyw", X(31,154), XRB_MASK, POWER6|PPCA2, PPCNONE, {RA, RS}},
{"prtyw", X(31,154), XRB_MASK, POWER6|PPCA2|PPC476, PPCNONE, {RA, RS}},
{"stdepx", X(31,157), X_MASK, E500MC|PPCA2, PPCNONE, {RS, RA, RB}},
{"stwepx", X(31,159), X_MASK, E500MC|PPCA2, PPCNONE, {RS, RA, RB}},
{"wrteei", X(31,163), XE_MASK, PPC403|BOOKE|PPCA2, PPCNONE, {E}},
{"wrteei", X(31,163), XE_MASK, PPC403|BOOKE|PPCA2|PPC476, PPCNONE, {E}},
{"dcbtls", X(31,166), X_MASK, PPCCHLK, PPCNONE, {CT, RA, RB}},
{"dcbtls", X(31,166), X_MASK, PPCCHLK|PPC476, PPCNONE, {CT, RA, RB}},
{"stvehx", X(31,167), X_MASK, PPCVEC, PPCNONE, {VS, RA, RB}},
{"sthfcmx", APU(31,167,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}},
@ -3731,7 +3732,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"stbepx", X(31,223), X_MASK, E500MC|PPCA2, PPCNONE, {RS, RA, RB}},
{"icblc", X(31,230), X_MASK, PPCCHLK, PPCNONE, {CT, RA, RB}},
{"icblc", X(31,230), X_MASK, PPCCHLK|PPC476, PPCNONE, {CT, RA, RB}},
{"stvx", X(31,231), X_MASK, PPCVEC, PPCNONE, {VS, RA, RB}},
{"stqfcmx", APU(31,231,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}},
@ -3772,7 +3773,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"dcbtstep", XRT(31,255,0), X_MASK, E500MC|PPCA2, PPCNONE, {RT, RA, RB}},
{"mfdcrx", X(31,259), X_MASK, BOOKE|PPCA2, PPCNONE, {RS, RA}},
{"mfdcrx", X(31,259), X_MASK, BOOKE|PPCA2|PPC476, PPCNONE, {RS, RA}},
{"mfdcrx.", XRC(31,259,1), X_MASK, PPCA2, PPCNONE, {RS, RA}},
{"icbt", X(31,262), XRT_MASK, PPC403, PPCNONE, {RA, RB}},
@ -3788,7 +3789,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"ehpriv", X(31,270), 0xffffffff, E500MC|PPCA2, PPCNONE, {0}},
{"tlbiel", X(31,274), XRTLRA_MASK, POWER4, PPCNONE, {RB, L}},
{"tlbiel", X(31,274), XRTLRA_MASK, POWER4, PPC476, {RB, L}},
{"mfapidi", X(31,275), X_MASK, BOOKE, PPCNONE, {RT, RA}},
@ -3858,9 +3859,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403, PPCNONE, {RT}},
{"mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403, PPCNONE, {RT}},
{"mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, PPCNONE, {RT}},
{"mfdcr", X(31,323), X_MASK, PPC403|BOOKE|PPCA2, PPCNONE, {RT, SPR}},
{"mfdcr", X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, PPCNONE, {RT, SPR}},
{"mfdcr.", XRC(31,323,1), X_MASK, PPCA2, PPCNONE, {RT, SPR}},
{"dcread", X(31,326), X_MASK, PPC476, PPCNONE, {RT, RA, RB}},
{"div", XO(31,331,0,0), XO_MASK, M601, PPCNONE, {RT, RA, RB}},
{"div.", XO(31,331,0,1), XO_MASK, M601, PPCNONE, {RT, RA, RB}},
@ -4082,10 +4085,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"popcntw", X(31,378), XRB_MASK, POWER7|PPCA2, PPCNONE, {RA, RS}},
{"mtdcrx", X(31,387), X_MASK, BOOKE|PPCA2, PPCNONE, {RA, RS}},
{"mtdcrx", X(31,387), X_MASK, BOOKE|PPCA2|PPC476, PPCNONE, {RA, RS}},
{"mtdcrx.", XRC(31,387,1), X_MASK, PPCA2, PPCNONE, {RA, RS}},
{"dcblc", X(31,390), X_MASK, PPCCHLK, PPCNONE, {CT, RA, RB}},
{"dcblc", X(31,390), X_MASK, PPCCHLK|PPC476, PPCNONE, {CT, RA, RB}},
{"stdfcmx", APU(31,391,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}},
{"divdeu", XO(31,393,0,0), XO_MASK, POWER7, PPCNONE, {RT, RA, RB}},
@ -4161,11 +4164,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403, PPCNONE, {RS}},
{"mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403, PPCNONE, {RS}},
{"mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, PPCNONE, {RS}},
{"mtdcr", X(31,451), X_MASK, PPC403|BOOKE|PPCA2, PPCNONE, {SPR, RS}},
{"mtdcr", X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, PPCNONE, {SPR, RS}},
{"mtdcr.", XRC(31,451,1), X_MASK, PPCA2, PPCNONE, {SPR, RS}},
{"dccci", X(31,454), XRT_MASK, PPC403|PPC440, PPCA2, {RA, RB}},
{"dci", X(31,454), XRARB_MASK, PPCA2, PPCNONE, {CT}},
{"dccci", X(31,454), XRT_MASK, PPC403|PPC440, PPCA2|PPC476, {RA, RB}},
{"dci", X(31,454), XRARB_MASK, PPCA2|PPC476, PPCNONE, {CT}},
{"divdu", XO(31,457,0,0), XO_MASK, PPC64, PPCNONE, {RT, RA, RB}},
{"divdu.", XO(31,457,0,1), XO_MASK, PPC64, PPCNONE, {RT, RA, RB}},
@ -4336,9 +4339,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"dsn", X(31,483), XRT_MASK, E500MC, PPCNONE, {RA, RB}},
{"dcread", X(31,486), X_MASK, PPC403|PPC440, PPCA2, {RT, RA, RB}},
{"dcread", X(31,486), X_MASK, PPC403|PPC440, PPCA2|PPC476, {RT, RA, RB}},
{"icbtls", X(31,486), X_MASK, PPCCHLK, PPCNONE, {CT, RA, RB}},
{"icbtls", X(31,486), X_MASK, PPCCHLK|PPC476, PPCNONE, {CT, RA, RB}},
{"stvxl", X(31,487), X_MASK, PPCVEC, PPCNONE, {VS, RA, RB}},
@ -4359,7 +4362,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"popcntd", X(31,506), XRB_MASK, POWER7|PPCA2, PPCNONE, {RA, RS}},
{"cmpb", X(31,508), X_MASK, POWER6|PPCA2, PPCNONE, {RA, RS, RB}},
{"cmpb", X(31,508), X_MASK, POWER6|PPCA2|PPC476, PPCNONE, {RA, RS, RB}},
{"mcrxr", X(31,512), XRARB_MASK|(3<<21), COM, POWER7, {BF}},
@ -4437,8 +4440,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"lwsync", XSYNC(31,598,1), 0xffffffff, PPC, PPCNONE, {0}},
{"ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, PPCNONE, {0}},
{"sync", X(31,598), XSYNC_MASK, PPCCOM, BOOKE, {LS}},
{"msync", X(31,598), 0xffffffff, BOOKE|PPCA2, PPCNONE, {0}},
{"sync", X(31,598), XSYNC_MASK, PPCCOM, BOOKE|PPC476, {LS}},
{"msync", X(31,598), 0xffffffff, BOOKE|PPCA2|PPC476, PPCNONE, {0}},
{"dcs", X(31,598), 0xffffffff, PWRCOM, PPCNONE, {0}},
{"lfdx", X(31,599), X_MASK, COM, PPCNONE, {FRT, RA0, RB}},
@ -4565,7 +4568,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"mullwo.", XO(31,235,1,1), XO_MASK, PPCCOM, PPCNONE, {RT, RA, RB}},
{"mulso.", XO(31,235,1,1), XO_MASK, PWRCOM, PPCNONE, {RT, RA, RB}},
{"dcba", X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2, PPCNONE, {RA, RB}},
{"dcba", X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2|PPC476, PPCNONE, {RA, RB}},
{"dcbal", XOPL(31,758,1), XRT_MASK, E500MC, PPCNONE, {RA, RB}},
{"stfdux", X(31,759), X_MASK, COM, PPCNONE, {FRS, RAS, RB}},
@ -4586,7 +4589,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"lxvw4x", X(31,780), XX1_MASK, PPCVSX, PPCNONE, {XT6, RA, RB}},
{"tlbivax", X(31,786), XRT_MASK, BOOKE|PPCA2, PPCNONE, {RA, RB}},
{"tlbivax", X(31,786), XRT_MASK, BOOKE|PPCA2|PPC476, PPCNONE, {RA, RB}},
{"lwzcix", X(31,789), X_MASK, POWER6, PPCNONE, {RT, RA0, RB}},
@ -4636,11 +4639,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"lbzcix", X(31,853), X_MASK, POWER6, PPCNONE, {RT, RA0, RB}},
{"eieio", X(31,854), 0xffffffff, PPC, BOOKE|PPCA2, {0}},
{"mbar", X(31,854), X_MASK, BOOKE|PPCA2, PPCNONE, {MO}},
{"eieio", X(31,854), 0xffffffff, PPCA2, PPCNONE, {0}},
{"eieio", X(31,854), 0xffffffff, PPC, BOOKE|PPCA2|PPC476, {0}},
{"mbar", X(31,854), X_MASK, BOOKE|PPCA2|PPC476, PPCNONE, {MO}},
{"eieio", X(31,854), 0xffffffff, PPCA2|PPC476, PPCNONE, {0}},
{"lfiwax", X(31,855), X_MASK, POWER6|PPCA2, PPCNONE, {FRT, RA0, RB}},
{"lfiwax", X(31,855), X_MASK, POWER6|PPCA2|PPC476, PPCNONE, {FRT, RA0, RB}},
{"abso", XO(31,360,1,0), XORB_MASK, M601, PPCNONE, {RT, RA}},
{"abso.", XO(31,360,1,1), XORB_MASK, M601, PPCNONE, {RT, RA}},
@ -4662,8 +4665,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"stxvw4x", X(31,908), XX1_MASK, PPCVSX, PPCNONE, {XS6, RA, RB}},
{"tlbsx", XRC(31,914,0), X_MASK, PPC403|BOOKE|PPCA2, PPCNONE, {RTO, RA, RB}},
{"tlbsx.", XRC(31,914,1), X_MASK, PPC403|BOOKE|PPCA2, PPCNONE, {RTO, RA, RB}},
{"tlbsx", XRC(31,914,0), X_MASK, PPC403|BOOKE|PPCA2|PPC476, PPCNONE, {RTO, RA, RB}},
{"tlbsx.", XRC(31,914,1), X_MASK, PPC403|BOOKE|PPCA2|PPC476, PPCNONE, {RTO, RA, RB}},
{"slbmfee", X(31,915), XRA_MASK, PPC64, PPCNONE, {RT, RB}},
@ -4696,7 +4699,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
{"tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
{"tlbre", X(31,946), X_MASK, PPC403|BOOKE|PPCA2, PPCNONE, {RSO, RAOPT, SHO}},
{"tlbre", X(31,946), X_MASK, PPC403|BOOKE|PPCA2|PPC476, PPCNONE, {RSO, RAOPT, SHO}},
{"sthcix", X(31,949), X_MASK, POWER6, PPCNONE, {RS, RA0, RB}},
@ -4708,8 +4711,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"extsb", XRC(31,954,0), XRB_MASK, PPC, PPCNONE, {RA, RS}},
{"extsb.", XRC(31,954,1), XRB_MASK, PPC, PPCNONE, {RA, RS}},
{"iccci", X(31,966), XRT_MASK, PPC403|PPC440, PPCNONE, {RA, RB}},
{"ici", X(31,966), XRARB_MASK, PPCA2, PPCNONE, {CT}},
{"iccci", X(31,966), XRT_MASK, PPC403|PPC440, PPC476, {RA, RB}},
{"ici", X(31,966), XRARB_MASK, PPCA2|PPC476, PPCNONE, {CT}},
{"divduo", XO(31,457,1,0), XO_MASK, PPC64, PPCNONE, {RT, RA, RB}},
{"divduo.", XO(31,457,1,1), XO_MASK, PPC64, PPCNONE, {RT, RA, RB}},
@ -4719,10 +4722,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"stxvd2x", X(31,972), XX1_MASK, PPCVSX, PPCNONE, {XS6, RA, RB}},
{"tlbld", X(31,978), XRTRA_MASK, PPC, PPC403|BOOKE|PPCA2, {RB}},
{"tlbld", X(31,978), XRTRA_MASK, PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}},
{"tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, PPCNONE, {RT, RA}},
{"tlbwelo", XTLB(31,978,1), XTLB_MASK, PPC403, PPCNONE, {RT, RA}},
{"tlbwe", X(31,978), X_MASK, PPC403|BOOKE|PPCA2, PPCNONE, {RSO, RAOPT, SHO}},
{"tlbwe", X(31,978), X_MASK, PPC403|BOOKE|PPCA2|PPC476, PPCNONE, {RSO, RAOPT, SHO}},
{"stbcix", X(31,981), X_MASK, POWER6, PPCNONE, {RS, RA0, RB}},
@ -4735,7 +4738,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"icbiep", XRT(31,991,0), XRT_MASK, E500MC|PPCA2, PPCNONE, {RA, RB}},
{"icread", X(31,998), XRT_MASK, PPC403|PPC440, PPCNONE, {RA, RB}},
{"icread", X(31,998), XRT_MASK, PPC403|PPC440|PPC476, PPCNONE, {RA, RB}},
{"nabso", XO(31,488,1,0), XORB_MASK, M601, PPCNONE, {RT, RA}},
{"nabso.", XO(31,488,1,1), XORB_MASK, M601, PPCNONE, {RT, RA}},
@ -4755,7 +4758,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"dcbzep", XRT(31,1023,0), XRT_MASK, E500MC|PPCA2, PPCNONE, {RA, RB}},
{"dcbzl", XOPL(31,1014,1), XRT_MASK, POWER4|E500MC, PPCNONE, {RA, RB}},
{"dcbzl", XOPL(31,1014,1), XRT_MASK, POWER4|E500MC, PPC476, {RA, RB}},
{"cctpl", 0x7c210b78, 0xffffffff, CELL, PPCNONE, {0}},
{"cctpm", 0x7c421378, 0xffffffff, CELL, PPCNONE, {0}},
@ -4824,7 +4827,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"stfdu", OP(55), OP_MASK, COM, PPCNONE, {FRS, D, RAS}},
{"lq", OP(56), OP_MASK, POWER4, PPCNONE, {RTQ, DQ, RAQ}},
{"lq", OP(56), OP_MASK, POWER4, PPC476, {RTQ, DQ, RAQ}},
{"psq_l", OP(56), OP_MASK, PPCPS, PPCNONE, {FRT,PSD,RA,PSW,PSQ}},
{"lfq", OP(56), OP_MASK, POWER2, PPCNONE, {FRT, D, RA0}},
@ -5097,7 +5100,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"std", DSO(62,0), DS_MASK, PPC64, PPCNONE, {RS, DS, RA0}},
{"stdu", DSO(62,1), DS_MASK, PPC64, PPCNONE, {RS, DS, RAS}},
{"stq", DSO(62,2), DS_MASK, POWER4, PPCNONE, {RSQ, DS, RA0}},
{"stq", DSO(62,2), DS_MASK, POWER4, PPC476, {RSQ, DS, RA0}},
{"fcmpu", X(63,0), X_MASK|(3<<21), COM, PPCNONE, {BF, FRA, FRB}},
@ -5107,8 +5110,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"dquaq", ZRC(63,3,0), Z2_MASK, POWER6, PPCNONE, {FRT, FRA, FRB, RMC}},
{"dquaq.", ZRC(63,3,1), Z2_MASK, POWER6, PPCNONE, {FRT, FRA, FRB, RMC}},
{"fcpsgn", XRC(63,8,0), X_MASK, POWER6|PPCA2, PPCNONE, {FRT, FRA, FRB}},
{"fcpsgn.", XRC(63,8,1), X_MASK, POWER6|PPCA2, PPCNONE, {FRT, FRA, FRB}},
{"fcpsgn", XRC(63,8,0), X_MASK, POWER6|PPCA2|PPC476, PPCNONE, {FRT, FRA, FRB}},
{"fcpsgn.", XRC(63,8,1), X_MASK, POWER6|PPCA2|PPC476, PPCNONE, {FRT, FRA, FRB}},
{"frsp", XRC(63,12,0), XRA_MASK, COM, PPCNONE, {FRT, FRB}},
{"frsp.", XRC(63,12,1), XRA_MASK, COM, PPCNONE, {FRT, FRB}},
@ -5217,10 +5220,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"dcmpoq", X(63,130), X_MASK, POWER6, PPCNONE, {BF, FRA, FRB}},
{"mtfsfi", XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2, PPCNONE, {BFF, U, W}},
{"mtfsfi", XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2, {BFF, U}},
{"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2, PPCNONE, {BFF, U, W}},
{"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2, {BFF, U}},
{"mtfsfi", XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCNONE, {BFF, U, W}},
{"mtfsfi", XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476, {BFF, U}},
{"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCNONE, {BFF, U, W}},
{"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476, {BFF, U}},
{"fnabs", XRC(63,136,0), XRA_MASK, COM, PPCNONE, {FRT, FRB}},
{"fnabs.", XRC(63,136,1), XRA_MASK, COM, PPCNONE, {FRT, FRB}},
@ -5276,10 +5279,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"dtstsfq", X(63,674), X_MASK, POWER6, PPCNONE, {BF, FRA, FRB}},
{"mtfsf", XFL(63,711,0), XFL_MASK, POWER6|PPCA2, PPCNONE, {FLM, FRB, XFL_L, W}},
{"mtfsf", XFL(63,711,0), XFL_MASK, COM, POWER6|PPCA2, {FLM, FRB}},
{"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2, PPCNONE, {FLM, FRB, XFL_L, W}},
{"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2, {FLM, FRB}},
{"mtfsf", XFL(63,711,0), XFL_MASK, POWER6|PPCA2|PPC476, PPCNONE, {FLM, FRB, XFL_L, W}},
{"mtfsf", XFL(63,711,0), XFL_MASK, COM, POWER6|PPCA2|PPC476, {FLM, FRB}},
{"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2|PPC476, PPCNONE, {FLM, FRB, XFL_L, W}},
{"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2|PPC476, {FLM, FRB}},
{"drdpq", XRC(63,770,0), X_MASK, POWER6, PPCNONE, {FRT, FRB}},
{"drdpq.", XRC(63,770,1), X_MASK, POWER6, PPCNONE, {FRT, FRB}},
@ -5288,16 +5291,22 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"dcffixq.", XRC(63,802,1), X_MASK, POWER6, PPCNONE, {FRT, FRB}},
{"fctid", XRC(63,814,0), XRA_MASK, PPC64, PPCNONE, {FRT, FRB}},
{"fctid", XRC(63,814,0), XRA_MASK, PPC476, PPCNONE, {FRT, FRB}},
{"fctid.", XRC(63,814,1), XRA_MASK, PPC64, PPCNONE, {FRT, FRB}},
{"fctid.", XRC(63,814,1), XRA_MASK, PPC476, PPCNONE, {FRT, FRB}},
{"fctidz", XRC(63,815,0), XRA_MASK, PPC64, PPCNONE, {FRT, FRB}},
{"fctidz", XRC(63,815,0), XRA_MASK, PPC476, PPCNONE, {FRT, FRB}},
{"fctidz.", XRC(63,815,1), XRA_MASK, PPC64, PPCNONE, {FRT, FRB}},
{"fctidz.", XRC(63,815,1), XRA_MASK, PPC476, PPCNONE, {FRT, FRB}},
{"denbcdq", XRC(63,834,0), X_MASK, POWER6, PPCNONE, {S, FRT, FRB}},
{"denbcdq.", XRC(63,834,1), X_MASK, POWER6, PPCNONE, {S, FRT, FRB}},
{"fcfid", XRC(63,846,0), XRA_MASK, PPC64, PPCNONE, {FRT, FRB}},
{"fcfid", XRC(63,846,0), XRA_MASK, PPC476, PPCNONE, {FRT, FRB}},
{"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCNONE, {FRT, FRB}},
{"fcfid.", XRC(63,846,1), XRA_MASK, PPC476, PPCNONE, {FRT, FRB}},
{"diexq", XRC(63,866,0), X_MASK, POWER6, PPCNONE, {FRT, FRA, FRB}},
{"diexq.", XRC(63,866,1), X_MASK, POWER6, PPCNONE, {FRT, FRA, FRB}},