OSDN Git Service

gas/
authorbergner <bergner>
Fri, 2 Oct 2009 14:42:41 +0000 (14:42 +0000)
committerbergner <bergner>
Fri, 2 Oct 2009 14:42:41 +0000 (14:42 +0000)
* 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.

12 files changed:
gas/ChangeLog
gas/config/tc-ppc.c
gas/doc/c-ppc.texi
gas/testsuite/ChangeLog
gas/testsuite/gas/ppc/476.d [new file with mode: 0644]
gas/testsuite/gas/ppc/476.s [new file with mode: 0644]
gas/testsuite/gas/ppc/ppc.exp
include/opcode/ChangeLog
include/opcode/ppc.h
opcodes/ChangeLog
opcodes/ppc-dis.c
opcodes/ppc-opc.c

index b1ad100..86b8224 100644 (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.
index 79d0101..493bfe5 100644 (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"));
index 9e7972c..cab461b 100644 (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.
 
index 81f3f35..dc46b35 100644 (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".
diff --git a/gas/testsuite/gas/ppc/476.d b/gas/testsuite/gas/ppc/476.d
new file mode 100644 (file)
index 0000000..ff4316c
--- /dev/null
@@ -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
diff --git a/gas/testsuite/gas/ppc/476.s b/gas/testsuite/gas/ppc/476.s
new file mode 100644 (file)
index 0000000..b1b427b
--- /dev/null
@@ -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
index 5c4af17..0c8d852 100644 (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"
     }
 }
index 8a86f4b..44d1432 100644 (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.
index 4e147eb..1dc2f1d 100644 (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)
 \f
index fd7f346..347f98d 100644 (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.
index 3af02bc..ac88f76 100644 (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 },
index 4b1b990..123436c 100644 (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}},