opcodes/
authorPeter Bergner <bergner@vnet.ibm.com>
Fri, 5 Oct 2012 14:06:20 +0000 (14:06 +0000)
committerPeter Bergner <bergner@vnet.ibm.com>
Fri, 5 Oct 2012 14:06:20 +0000 (14:06 +0000)
* ppc-dis.c (ppc_opts) <altivec>: Use PPC_OPCODE_ALTIVEC2;
* ppc-opc.c (VBA): New define.
(powerpc_opcodes) <vcuxwfp, vcsxwfp, vcfpuxws, vcfpsxsw, vmr, vnot,
mfppr, mfppr32, mtppr, mtppr32>: New extended mnemonics.

gas/testsuite/
* gas/ppc/power7.d: Add tests for mfppr, mfppr32, mtppr and mtppr32.
* gas/ppc/power7.s: Likewise.
* gas/ppc/altivec.d: Add tests for all legacy Altivec instructions.
* gas/ppc/altivec.s: Likewise.
* gas/ppc/altivec2.d: New test file.
* gas/ppc/altivec2.s: Likewise.
* gas/ppc/ppc.exp: Run it.

gas/testsuite/ChangeLog
gas/testsuite/gas/ppc/altivec.d
gas/testsuite/gas/ppc/altivec.s
gas/testsuite/gas/ppc/altivec2.d [new file with mode: 0644]
gas/testsuite/gas/ppc/altivec2.s [new file with mode: 0644]
gas/testsuite/gas/ppc/power7.d
gas/testsuite/gas/ppc/power7.s
gas/testsuite/gas/ppc/ppc.exp
opcodes/ChangeLog
opcodes/ppc-dis.c
opcodes/ppc-opc.c

index 56b3b8a..961d572 100644 (file)
@@ -1,3 +1,13 @@
+2012-10-05  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * gas/ppc/power7.d: Add tests for mfppr, mfppr32, mtppr and mtppr32.
+       * gas/ppc/power7.s: Likewise.
+       * gas/ppc/altivec.d: Add tests for all legacy Altivec instructions.
+       * gas/ppc/altivec.s: Likewise.
+       * gas/ppc/altivec2.d: New test file.
+       * gas/ppc/altivec2.s: Likewise.
+       * gas/ppc/ppc.exp: Run it.
+
 2012-10-04  Nick Clifton  <nickc@redhat.com>
 
        * gas/v850/v850e1.d: Fix expected disassembly of clr1, not1, set1
index 46d17d5..9a49bb6 100644 (file)
@@ -13,3 +13,194 @@ Disassembly of section \.text:
    c:  7e 08 3a ac     dstt    r8,r7,0
   10:  7c 65 32 ec     dstst   r5,r6,3
   14:  7e 44 2a ec     dststt  r4,r5,2
+  18:  7f d6 c0 0e     lvebx   v30,r22,r24
+  1c:  7e a0 c0 0e     lvebx   v21,0,r24
+  20:  7d 50 10 4e     lvehx   v10,r16,r2
+  24:  7e 80 b8 4e     lvehx   v20,0,r23
+  28:  7e 24 90 8e     lvewx   v17,r4,r18
+  2c:  7e e0 40 8e     lvewx   v23,0,r8
+  30:  7c c0 c8 0c     lvsl    v6,0,r25
+  34:  7c 40 30 0c     lvsl    v2,0,r6
+  38:  7e d0 60 4c     lvsr    v22,r16,r12
+  3c:  7c 00 e8 4c     lvsr    v0,0,r29
+  40:  7d e5 6a ce     lvxl    v15,r5,r13
+  44:  7e 60 ba ce     lvxl    v19,0,r23
+  48:  7e c1 10 ce     lvx     v22,r1,r2
+  4c:  7e 40 88 ce     lvx     v18,0,r17
+  50:  7f e0 42 a6     mfvrsave r31
+  54:  13 00 06 04     mfvscr  v24
+  58:  7d 40 43 a6     mtvrsave r10
+  5c:  10 00 ce 44     mtvscr  v25
+  60:  7e 5b 51 0e     stvebx  v18,r27,r10
+  64:  7e 00 31 0e     stvebx  v16,0,r6
+  68:  7e 2d 81 4e     stvehx  v17,r13,r16
+  6c:  7e e0 a1 4e     stvehx  v23,0,r20
+  70:  7d 73 f9 8e     stvewx  v11,r19,r31
+  74:  7f e0 09 8e     stvewx  v31,0,r1
+  78:  7f 55 8b ce     stvxl   v26,r21,r17
+  7c:  7d a0 b3 ce     stvxl   v13,0,r22
+  80:  7d 7f f9 ce     stvx    v11,r31,r31
+  84:  7f c0 81 ce     stvx    v30,0,r16
+  88:  13 07 e1 80     vaddcuw v24,v7,v28
+  8c:  10 7e 58 0a     vaddfp  v3,v30,v11
+  90:  11 1c 4b 00     vaddsbs v8,v28,v9
+  94:  10 e5 23 40     vaddshs v7,v5,v4
+  98:  12 da db 80     vaddsws v22,v26,v27
+  9c:  12 0e e0 00     vaddubm v16,v14,v28
+  a0:  10 c1 ca 00     vaddubs v6,v1,v25
+  a4:  10 44 30 40     vadduhm v2,v4,v6
+  a8:  13 55 42 40     vadduhs v26,v21,v8
+  ac:  13 bf 08 80     vadduwm v29,v31,v1
+  b0:  12 ed 22 80     vadduws v23,v13,v4
+  b4:  13 d0 4c 44     vandc   v30,v16,v9
+  b8:  10 6d dc 04     vand    v3,v13,v27
+  bc:  10 86 8d 02     vavgsb  v4,v6,v17
+  c0:  12 fc 9d 42     vavgsh  v23,v28,v19
+  c4:  11 0f fd 82     vavgsw  v8,v15,v31
+  c8:  10 c7 cc 02     vavgub  v6,v7,v25
+  cc:  13 36 54 42     vavguh  v25,v22,v10
+  d0:  10 77 ec 82     vavguw  v3,v23,v29
+  d4:  11 c6 13 ca     vctsxs  v14,v2,6
+  d8:  11 34 fb 8a     vctuxs  v9,v31,20
+  dc:  13 03 f3 4a     vcfsx   v24,v30,3
+  e0:  12 3d ab 0a     vcfux   v17,v21,29
+  e4:  12 5c 03 c6     vcmpbfp v18,v28,v0
+  e8:  12 7a 1f c6     vcmpbfp\. v19,v26,v3
+  ec:  12 02 58 c6     vcmpeqfp v16,v2,v11
+  f0:  12 ed 6c c6     vcmpeqfp\. v23,v13,v13
+  f4:  13 33 50 06     vcmpequb v25,v19,v10
+  f8:  12 4b 14 06     vcmpequb\. v18,v11,v2
+  fc:  11 39 38 46     vcmpequh v9,v25,v7
+ 100:  11 d8 ac 46     vcmpequh\. v14,v24,v21
+ 104:  13 0c 28 86     vcmpequw v24,v12,v5
+ 108:  12 70 0c 86     vcmpequw\. v19,v16,v1
+ 10c:  12 f1 81 c6     vcmpgefp v23,v17,v16
+ 110:  12 7d 8d c6     vcmpgefp\. v19,v29,v17
+ 114:  12 1c 6a c6     vcmpgtfp v16,v28,v13
+ 118:  11 d8 3e c6     vcmpgtfp\. v14,v24,v7
+ 11c:  12 16 33 06     vcmpgtsb v16,v22,v6
+ 120:  10 4c 77 06     vcmpgtsb\. v2,v12,v14
+ 124:  13 83 eb 46     vcmpgtsh v28,v3,v29
+ 128:  12 13 6f 46     vcmpgtsh\. v16,v19,v13
+ 12c:  11 e0 2b 86     vcmpgtsw v15,v0,v5
+ 130:  12 ad 07 86     vcmpgtsw\. v21,v13,v0
+ 134:  10 aa f2 06     vcmpgtub v5,v10,v30
+ 138:  10 ed 56 06     vcmpgtub\. v7,v13,v10
+ 13c:  13 0f 82 46     vcmpgtuh v24,v15,v16
+ 140:  13 35 de 46     vcmpgtuh\. v25,v21,v27
+ 144:  12 3b 32 86     vcmpgtuw v17,v27,v6
+ 148:  11 15 de 86     vcmpgtuw\. v8,v21,v27
+ 14c:  10 2e 0b 4a     vcfsx   v1,v1,14
+ 150:  10 99 7b ca     vctsxs  v4,v15,25
+ 154:  13 8e bb 8a     vctuxs  v28,v23,14
+ 158:  10 c0 33 0a     vcfux   v6,v6,0
+ 15c:  10 00 41 8a     vexptefp v0,v8
+ 160:  12 c0 d9 ca     vlogefp v22,v27
+ 164:  12 f2 91 6e     vmaddfp v23,v18,v5,v18
+ 168:  11 ad dc 0a     vmaxfp  v13,v13,v27
+ 16c:  11 17 71 02     vmaxsb  v8,v23,v14
+ 170:  12 71 01 42     vmaxsh  v19,v17,v0
+ 174:  12 63 b1 82     vmaxsw  v19,v3,v22
+ 178:  12 fe e0 02     vmaxub  v23,v30,v28
+ 17c:  11 34 b8 42     vmaxuh  v9,v20,v23
+ 180:  12 b3 08 82     vmaxuw  v21,v19,v1
+ 184:  12 cd 2d a0     vmhaddshs v22,v13,v5,v22
+ 188:  13 e0 1c a1     vmhraddshs v31,v0,v3,v18
+ 18c:  10 55 c4 4a     vminfp  v2,v21,v24
+ 190:  12 86 53 02     vminsb  v20,v6,v10
+ 194:  12 5b d3 42     vminsh  v18,v27,v26
+ 198:  10 64 0b 82     vminsw  v3,v4,v1
+ 19c:  10 e0 6a 02     vminub  v7,v0,v13
+ 1a0:  10 0c 32 42     vminuh  v0,v12,v6
+ 1a4:  10 c3 0a 82     vminuw  v6,v3,v1
+ 1a8:  10 7d 1e a2     vmladduhm v3,v29,v3,v26
+ 1ac:  12 a5 f8 0c     vmrghb  v21,v5,v31
+ 1b0:  12 b8 00 4c     vmrghh  v21,v24,v0
+ 1b4:  12 00 b0 8c     vmrghw  v16,v0,v22
+ 1b8:  10 31 81 0c     vmrglb  v1,v17,v16
+ 1bc:  11 c8 79 4c     vmrglh  v14,v8,v15
+ 1c0:  13 f5 29 8c     vmrglw  v31,v21,v5
+ 1c4:  13 09 4c 84     vmr     v24,v9
+ 1c8:  13 09 4c 84     vmr     v24,v9
+ 1cc:  10 18 7d e5     vmsummbm v0,v24,v15,v23
+ 1d0:  10 24 3e 68     vmsumshm v1,v4,v7,v25
+ 1d4:  11 28 6f e9     vmsumshs v9,v8,v13,v31
+ 1d8:  12 ff 67 a4     vmsumubm v23,v31,v12,v30
+ 1dc:  13 a0 d5 66     vmsumuhm v29,v0,v26,v21
+ 1e0:  13 6e c9 67     vmsumuhs v27,v14,v25,v5
+ 1e4:  11 59 73 08     vmulesb v10,v25,v14
+ 1e8:  10 32 43 48     vmulesh v1,v18,v8
+ 1ec:  12 2e 4a 08     vmuleub v17,v14,v9
+ 1f0:  10 ba 4a 48     vmuleuh v5,v26,v9
+ 1f4:  12 b2 31 08     vmulosb v21,v18,v6
+ 1f8:  10 85 41 48     vmulosh v4,v5,v8
+ 1fc:  10 49 98 08     vmuloub v2,v9,v19
+ 200:  13 a5 20 48     vmulouh v29,v5,v4
+ 204:  11 02 29 af     vnmsubfp v8,v2,v6,v5
+ 208:  13 e9 55 04     vnor    v31,v9,v10
+ 20c:  13 3f fd 04     vnot    v25,v31
+ 210:  13 3f fd 04     vnot    v25,v31
+ 214:  12 e7 14 84     vor     v23,v7,v2
+ 218:  10 1c b6 6b     vperm   v0,v28,v22,v25
+ 21c:  12 19 8b 0e     vpkpx   v16,v25,v17
+ 220:  11 90 89 8e     vpkshss v12,v16,v17
+ 224:  10 33 b9 0e     vpkshus v1,v19,v23
+ 228:  13 27 69 ce     vpkswss v25,v7,v13
+ 22c:  10 98 51 4e     vpkswus v4,v24,v10
+ 230:  11 3b 60 0e     vpkuhum v9,v27,v12
+ 234:  12 ca c8 8e     vpkuhus v22,v10,v25
+ 238:  13 d2 00 4e     vpkuwum v30,v18,v0
+ 23c:  10 e3 b0 ce     vpkuwus v7,v3,v22
+ 240:  13 00 e1 0a     vrefp   v24,v28
+ 244:  12 20 9a ca     vrfim   v17,v19
+ 248:  13 00 ca 0a     vrfin   v24,v25
+ 24c:  10 60 2a 8a     vrfip   v3,v5
+ 250:  11 00 52 4a     vrfiz   v8,v10
+ 254:  13 52 f0 04     vrlb    v26,v18,v30
+ 258:  12 11 c8 44     vrlh    v16,v17,v25
+ 25c:  12 fe 48 84     vrlw    v23,v30,v9
+ 260:  10 40 91 4a     vrsqrtefp v2,v18
+ 264:  12 8e 92 aa     vsel    v20,v14,v18,v10
+ 268:  13 39 61 04     vslb    v25,v25,v12
+ 26c:  11 29 61 ec     vsldoi  v9,v9,v12,7
+ 270:  11 c2 59 44     vslh    v14,v2,v11
+ 274:  13 c5 34 0c     vslo    v30,v5,v6
+ 278:  12 de 49 c4     vsl     v22,v30,v9
+ 27c:  13 5a 19 84     vslw    v26,v26,v3
+ 280:  10 26 a2 0c     vspltb  v1,v20,6
+ 284:  12 03 92 4c     vsplth  v16,v18,3
+ 288:  13 33 03 0c     vspltisb v25,-13
+ 28c:  12 ca 03 4c     vspltish v22,10
+ 290:  11 ad 03 8c     vspltisw v13,13
+ 294:  11 22 92 8c     vspltw  v9,v18,2
+ 298:  11 d6 03 04     vsrab   v14,v22,v0
+ 29c:  11 8c 93 44     vsrah   v12,v12,v18
+ 2a0:  10 42 6b 84     vsraw   v2,v2,v13
+ 2a4:  10 fb 2a 04     vsrb    v7,v27,v5
+ 2a8:  10 eb ea 44     vsrh    v7,v11,v29
+ 2ac:  12 5e fc 4c     vsro    v18,v30,v31
+ 2b0:  10 49 e2 c4     vsr     v2,v9,v28
+ 2b4:  10 19 02 84     vsrw    v0,v25,v0
+ 2b8:  13 02 55 80     vsubcuw v24,v2,v10
+ 2bc:  12 d8 a0 4a     vsubfp  v22,v24,v20
+ 2c0:  11 56 6f 00     vsubsbs v10,v22,v13
+ 2c4:  13 11 e7 40     vsubshs v24,v17,v28
+ 2c8:  11 5a 07 80     vsubsws v10,v26,v0
+ 2cc:  12 0b c4 00     vsububm v16,v11,v24
+ 2d0:  11 75 0e 00     vsububs v11,v21,v1
+ 2d4:  10 cc c4 40     vsubuhm v6,v12,v24
+ 2d8:  13 cb 4e 40     vsubuhs v30,v11,v9
+ 2dc:  12 74 6c 80     vsubuwm v19,v20,v13
+ 2e0:  12 59 36 80     vsubuws v18,v25,v6
+ 2e4:  13 2a 96 88     vsum2sws v25,v10,v18
+ 2e8:  11 b0 af 08     vsum4sbs v13,v16,v21
+ 2ec:  12 e8 26 48     vsum4shs v23,v8,v4
+ 2f0:  13 8d f6 08     vsum4ubs v28,v13,v30
+ 2f4:  12 ca 47 88     vsumsws v22,v10,v8
+ 2f8:  13 00 73 4e     vupkhpx v24,v14
+ 2fc:  10 40 b2 0e     vupkhsb v2,v22
+ 300:  12 00 12 4e     vupkhsh v16,v2
+ 304:  11 40 d3 ce     vupklpx v10,v26
+ 308:  11 e0 e2 8e     vupklsb v15,v28
+ 30c:  11 00 42 ce     vupklsh v8,v8
+ 310:  13 20 1c c4     vxor    v25,v0,v3
index 2f7e4df..02af436 100644 (file)
@@ -8,3 +8,194 @@ start:
        dstt    8,7,0
        dstst   5,6,3
        dststt  4,5,2
+       lvebx    30,22,24
+       lvebx    21,0,24
+       lvehx    10,16,2
+       lvehx    20,0,23
+       lvewx    17,4,18
+       lvewx    23,0,8
+       lvsl     6,0,25
+       lvsl     2,0,6
+       lvsr     22,16,12
+       lvsr     0,0,29
+       lvxl     15,5,13
+       lvxl     19,0,23
+       lvx      22,1,2
+       lvx      18,0,17
+       mfvrsave 31
+       mfvscr   24
+       mtvrsave 10
+       mtvscr   25
+       stvebx   18,27,10
+       stvebx   16,0,6
+       stvehx   17,13,16
+       stvehx   23,0,20
+       stvewx   11,19,31
+       stvewx   31,0,1
+       stvxl    26,21,17
+       stvxl    13,0,22
+       stvx     11,31,31
+       stvx     30,0,16
+       vaddcuw  24,7,28
+       vaddfp   3,30,11
+       vaddsbs  8,28,9
+       vaddshs  7,5,4
+       vaddsws  22,26,27
+       vaddubm  16,14,28
+       vaddubs  6,1,25
+       vadduhm  2,4,6
+       vadduhs  26,21,8
+       vadduwm  29,31,1
+       vadduws  23,13,4
+       vandc    30,16,9
+       vand     3,13,27
+       vavgsb   4,6,17
+       vavgsh   23,28,19
+       vavgsw   8,15,31
+       vavgub   6,7,25
+       vavguh   25,22,10
+       vavguw   3,23,29
+       vcfpsxsw 14,2,6
+       vcfpuxws 9,31,20
+       vcfsx    24,30,3
+       vcfux    17,21,29
+       vcmpbfp  18,28,0
+       vcmpbfp. 19,26,3
+       vcmpeqfp 16,2,11
+       vcmpeqfp. 23,13,13
+       vcmpequb 25,19,10
+       vcmpequb. 18,11,2
+       vcmpequh 9,25,7
+       vcmpequh. 14,24,21
+       vcmpequw 24,12,5
+       vcmpequw. 19,16,1
+       vcmpgefp 23,17,16
+       vcmpgefp. 19,29,17
+       vcmpgtfp 16,28,13
+       vcmpgtfp. 14,24,7
+       vcmpgtsb 16,22,6
+       vcmpgtsb. 2,12,14
+       vcmpgtsh 28,3,29
+       vcmpgtsh. 16,19,13
+       vcmpgtsw 15,0,5
+       vcmpgtsw. 21,13,0
+       vcmpgtub 5,10,30
+       vcmpgtub. 7,13,10
+       vcmpgtuh 24,15,16
+       vcmpgtuh. 25,21,27
+       vcmpgtuw 17,27,6
+       vcmpgtuw. 8,21,27
+       vcsxwfp  1,1,14
+       vctsxs   4,15,25
+       vctuxs   28,23,14
+       vcuxwfp  6,6,0
+       vexptefp 0,8
+       vlogefp  22,27
+       vmaddfp  23,18,5,18
+       vmaxfp   13,13,27
+       vmaxsb   8,23,14
+       vmaxsh   19,17,0
+       vmaxsw   19,3,22
+       vmaxub   23,30,28
+       vmaxuh   9,20,23
+       vmaxuw   21,19,1
+       vmhaddshs 22,13,5,22
+       vmhraddshs 31,0,3,18
+       vminfp   2,21,24
+       vminsb   20,6,10
+       vminsh   18,27,26
+       vminsw   3,4,1
+       vminub   7,0,13
+       vminuh   0,12,6
+       vminuw   6,3,1
+       vmladduhm 3,29,3,26
+       vmrghb   21,5,31
+       vmrghh   21,24,0
+       vmrghw   16,0,22
+       vmrglb   1,17,16
+       vmrglh   14,8,15
+       vmrglw   31,21,5
+       vmr      24,9,
+       vor      24,9,9
+       vmsummbm 0,24,15,23
+       vmsumshm 1,4,7,25
+       vmsumshs 9,8,13,31
+       vmsumubm 23,31,12,30
+       vmsumuhm 29,0,26,21
+       vmsumuhs 27,14,25,5
+       vmulesb  10,25,14
+       vmulesh  1,18,8
+       vmuleub  17,14,9
+       vmuleuh  5,26,9
+       vmulosb  21,18,6
+       vmulosh  4,5,8
+       vmuloub  2,9,19
+       vmulouh  29,5,4
+       vnmsubfp 8,2,6,5
+       vnor     31,9,10
+       vnor     25,31,31
+       vnot     25,31,
+       vor      23,7,2
+       vperm    0,28,22,25
+       vpkpx    16,25,17
+       vpkshss  12,16,17
+       vpkshus  1,19,23
+       vpkswss  25,7,13
+       vpkswus  4,24,10
+       vpkuhum  9,27,12
+       vpkuhus  22,10,25
+       vpkuwum  30,18,0
+       vpkuwus  7,3,22
+       vrefp    24,28
+       vrfim    17,19
+       vrfin    24,25
+       vrfip    3,5
+       vrfiz    8,10
+       vrlb     26,18,30
+       vrlh     16,17,25
+       vrlw     23,30,9
+       vrsqrtefp 2,18
+       vsel     20,14,18,10
+       vslb     25,25,12
+       vsldoi   9,9,12,7
+       vslh     14,2,11
+       vslo     30,5,6
+       vsl      22,30,9
+       vslw     26,26,3
+       vspltb   1,20,6
+       vsplth   16,18,3
+       vspltisb 25,-13
+       vspltish 22,10
+       vspltisw 13,13
+       vspltw   9,18,2
+       vsrab    14,22,0
+       vsrah    12,12,18
+       vsraw    2,2,13
+       vsrb     7,27,5
+       vsrh     7,11,29
+       vsro     18,30,31
+       vsr      2,9,28
+       vsrw     0,25,0
+       vsubcuw  24,2,10
+       vsubfp   22,24,20
+       vsubsbs  10,22,13
+       vsubshs  24,17,28
+       vsubsws  10,26,0
+       vsububm  16,11,24
+       vsububs  11,21,1
+       vsubuhm  6,12,24
+       vsubuhs  30,11,9
+       vsubuwm  19,20,13
+       vsubuws  18,25,6
+       vsum2sws 25,10,18
+       vsum4sbs 13,16,21
+       vsum4shs 23,8,4
+       vsum4ubs 28,13,30
+       vsumsws  22,10,8
+       vupkhpx  24,14
+       vupkhsb  2,22
+       vupkhsh  16,2
+       vupklpx  10,26
+       vupklsb  15,28
+       vupklsh  8,8
+       vxor     25,0,3
diff --git a/gas/testsuite/gas/ppc/altivec2.d b/gas/testsuite/gas/ppc/altivec2.d
new file mode 100644 (file)
index 0000000..6edd0ea
--- /dev/null
@@ -0,0 +1,60 @@
+#as: -maltivec
+#objdump: -dr -Maltivec
+#name: Altivec ISA 2.07 instructions
+
+.*: +file format elf(32)?(64)?-powerpc.*
+
+Disassembly of section \.text:
+
+0+00 <start>:
+   0:  7c 60 e2 0e     lvepxl  v3,0,r28
+   4:  7e 64 92 0e     lvepxl  v19,r4,r18
+   8:  7f 60 9a 4e     lvepx   v27,0,r19
+   c:  7c 39 92 4e     lvepx   v1,r25,r18
+  10:  7f e0 da 0a     lvexbx  v31,0,r27
+  14:  7f 81 62 0a     lvexbx  v28,r1,r12
+  18:  7f e0 72 4a     lvexhx  v31,0,r14
+  1c:  7e 30 fa 4a     lvexhx  v17,r16,r31
+  20:  7e c0 ea 8a     lvexwx  v22,0,r29
+  24:  7e f9 2a 8a     lvexwx  v23,r25,r5
+  28:  7c 60 66 0a     lvsm    v3,0,r12
+  2c:  7f 7d 0e 0a     lvsm    v27,r29,r1
+  30:  7c e0 36 ca     lvswxl  v7,0,r6
+  34:  7c f0 46 ca     lvswxl  v7,r16,r8
+  38:  7d c0 94 ca     lvswx   v14,0,r18
+  3c:  7f 9c 84 ca     lvswx   v28,r28,r16
+  40:  7f 60 66 8a     lvtlxl  v27,0,r12
+  44:  7f 7c 06 8a     lvtlxl  v27,r28,r0
+  48:  7e e0 cc 8a     lvtlx   v23,0,r25
+  4c:  7c 39 74 8a     lvtlx   v1,r25,r14
+  50:  7e 80 c6 4a     lvtrxl  v20,0,r24
+  54:  7e dd c6 4a     lvtrxl  v22,r29,r24
+  58:  7f 00 44 4a     lvtrx   v24,0,r8
+  5c:  7d b7 e4 4a     lvtrx   v13,r23,r28
+  60:  7d 9c 60 dc     mvidsplt v12,r28,r12
+  64:  7d 5b 00 5c     mviwsplt v10,r27,r0
+  68:  7f 60 6e 0e     stvepxl v27,0,r13
+  6c:  7c 42 fe 0e     stvepxl v2,r2,r31
+  70:  7c 60 56 4e     stvepx  v3,0,r10
+  74:  7f 7c 06 4e     stvepx  v27,r28,r0
+  78:  7d a0 33 0a     stvexbx v13,0,r6
+  7c:  7d b9 1b 0a     stvexbx v13,r25,r3
+  80:  7e c0 0b 4a     stvexhx v22,0,r1
+  84:  7e 2e 53 4a     stvexhx v17,r14,r10
+  88:  7e a0 db 8a     stvexwx v21,0,r27
+  8c:  7f f2 0b 8a     stvexwx v31,r18,r1
+  90:  7f 40 6f 8a     stvflxl v26,0,r13
+  94:  7e cd af 8a     stvflxl v22,r13,r21
+  98:  7c a0 4d 8a     stvflx  v5,0,r9
+  9c:  7e b8 0d 8a     stvflx  v21,r24,r1
+  a0:  7d a0 57 4a     stvfrxl v13,0,r10
+  a4:  7d b1 cf 4a     stvfrxl v13,r17,r25
+  a8:  7e 20 55 4a     stvfrx  v17,0,r10
+  ac:  7d 0c fd 4a     stvfrx  v8,r12,r31
+  b0:  7e 40 ef ca     stvswxl v18,0,r29
+  b4:  7f 4e 47 ca     stvswxl v26,r14,r8
+  b8:  7c 00 7d ca     stvswx  v0,0,r15
+  bc:  7d b7 3d ca     stvswx  v13,r23,r7
+  c0:  10 d1 84 03     vabsdub v6,v17,v16
+  c4:  12 b2 24 43     vabsduh v21,v18,v4
+  c8:  13 34 4c 83     vabsduw v25,v20,v9
diff --git a/gas/testsuite/gas/ppc/altivec2.s b/gas/testsuite/gas/ppc/altivec2.s
new file mode 100644 (file)
index 0000000..9f11a8b
--- /dev/null
@@ -0,0 +1,52 @@
+start:
+       lvepxl   3,0,28
+       lvepxl   19,4,18
+       lvepx    27,0,19
+       lvepx    1,25,18
+       lvexbx   31,0,27
+       lvexbx   28,1,12
+       lvexhx   31,0,14
+       lvexhx   17,16,31
+       lvexwx   22,0,29
+       lvexwx   23,25,5
+       lvsm     3,0,12
+       lvsm     27,29,1
+       lvswxl   7,0,6
+       lvswxl   7,16,8
+       lvswx    14,0,18
+       lvswx    28,28,16
+       lvtlxl   27,0,12
+       lvtlxl   27,28,0
+       lvtlx    23,0,25
+       lvtlx    1,25,14
+       lvtrxl   20,0,24
+       lvtrxl   22,29,24
+       lvtrx    24,0,8
+       lvtrx    13,23,28
+       mvidsplt 12,28,12
+       mviwsplt 10,27,0
+       stvepxl  27,0,13
+       stvepxl  2,2,31
+       stvepx   3,0,10
+       stvepx   27,28,0
+       stvexbx  13,0,6
+       stvexbx  13,25,3
+       stvexhx  22,0,1
+       stvexhx  17,14,10
+       stvexwx  21,0,27
+       stvexwx  31,18,1
+       stvflxl  26,0,13
+       stvflxl  22,13,21
+       stvflx   5,0,9
+       stvflx   21,24,1
+       stvfrxl  13,0,10
+       stvfrxl  13,17,25
+       stvfrx   17,0,10
+       stvfrx   8,12,31
+       stvswxl  18,0,29
+       stvswxl  26,14,8
+       stvswx   0,0,15
+       stvswx   13,23,7
+       vabsdub  6,17,16
+       vabsduh  21,18,4
+       vabsduw  25,20,9
index 748da55..35eed8c 100644 (file)
@@ -117,3 +117,7 @@ Disassembly of section \.text:
  1ac:  7f bd eb 78     mdoio
  1b0:  7f de f3 78     mdoom
  1b4:  7f de f3 78     mdoom
+ 1b8:  7d 40 e2 a6     mfppr   r10
+ 1bc:  7d 62 e2 a6     mfppr32 r11
+ 1c0:  7d 80 e3 a6     mtppr   r12
+ 1c4:  7d a2 e3 a6     mtppr32 r13
index 37c3e7f..3c18352 100644 (file)
@@ -108,3 +108,7 @@ power7:
        or        29,29,29
        mdoom
        or        30,30,30
+       mfppr     10
+       mfppr32   11
+       mtppr     12
+       mtppr32   13
index aac92b6..ee65306 100644 (file)
@@ -36,6 +36,7 @@ if { [istarget powerpc*-*-*] } then {
        run_dump_test "altivec_xcoff64"
     } else {
        run_dump_test "altivec"
+       run_dump_test "altivec2"
        run_dump_test "altivec_and_spe"
        run_dump_test "booke"
        run_dump_test "e500"
index 214ea81..ea9d742 100644 (file)
@@ -1,3 +1,10 @@
+2012-10-05  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * ppc-dis.c (ppc_opts) <altivec>: Use PPC_OPCODE_ALTIVEC2;
+       * ppc-opc.c (VBA): New define.
+       (powerpc_opcodes) <vcuxwfp, vcsxwfp, vcfpuxws, vcfpsxsw, vmr, vnot,
+       mfppr, mfppr32, mtppr, mtppr32>: New extended mnemonics.
+
 2012-10-04  Nick Clifton  <nickc@redhat.com>
 
        * v850-dis.c (disassemble): Place square parentheses around second
index 44310e8..03b3160 100644 (file)
@@ -88,7 +88,7 @@ struct ppc_mopt ppc_opts[] = {
                | PPC_OPCODE_A2),
     0 },
   { "altivec", (PPC_OPCODE_PPC),
-    PPC_OPCODE_ALTIVEC },
+    PPC_OPCODE_ALTIVEC | PPC_OPCODE_ALTIVEC2 },
   { "any",     0,
     PPC_OPCODE_ANY },
   { "booke",   (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE),
index 6ebcc90..cbf264b 100644 (file)
@@ -156,6 +156,9 @@ const struct powerpc_operand powerpc_operands[] =
   /* The BB field in an XL form instruction when it must be the same
      as the BA field in the same instruction.  */
 #define BBA BB + 1
+  /* The VB field in a VX form instruction when it must be the same
+     as the VA field in the same instruction.  */
+#define VBA BBA
   { 0x1f, 11, insert_bba, extract_bba, PPC_OPERAND_FAKE },
 
   /* The BD field in a B form instruction.  The lower two bits are
@@ -3106,6 +3109,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"vmulesb",    VX (4, 776),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"evlhhesplat",        VX (4, 777),    VX_MASK,     PPCSPE|PPCVLE, PPCNONE,    {RS, EVUIMM_2, RA}},
 {"vcfux",      VX (4, 778),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VB, UIMM}},
+{"vcuxwfp",    VX (4, 778),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VB, UIMM}},
 {"evlhhousplatx",VX(4, 780),   VX_MASK,     PPCSPE|PPCVLE, PPCNONE,    {RS, RA, RB}},
 {"vspltisb",   VX (4, 780),    VXVB_MASK,   PPCVEC|PPCVLE, PPCNONE,    {VD, SIMM}},
 {"evlhhousplat",VX (4, 781),   VX_MASK,     PPCSPE|PPCVLE, PPCNONE,    {RS, EVUIMM_2, RA}},
@@ -3146,6 +3150,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"vcmpgtsh",   VXR(4, 838,0),  VXR_MASK,    PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"vmulesh",    VX (4, 840),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"vcfsx",      VX (4, 842),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VB, UIMM}},
+{"vcsxwfp",    VX (4, 842),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VB, UIMM}},
 {"vspltish",   VX (4, 844),    VXVB_MASK,   PPCVEC|PPCVLE, PPCNONE,    {VD, SIMM}},
 {"vupkhpx",    VX (4, 846),    VXVA_MASK,   PPCVEC|PPCVLE, PPCNONE,    {VD, VB}},
 {"mullhw",     XRC(4, 424,0),  X_MASK,      MULHW|PPCVLE, PPCNONE,     {RT, RA, RB}},
@@ -3159,11 +3164,13 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"vsraw",      VX (4, 900),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"vcmpgtsw",   VXR(4, 902,0),  VXR_MASK,    PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"vctuxs",     VX (4, 906),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VB, UIMM}},
+{"vcfpuxws",   VX (4, 906),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VB, UIMM}},
 {"vspltisw",   VX (4, 908),    VXVB_MASK,   PPCVEC|PPCVLE, PPCNONE,    {VD, SIMM}},
 {"maclhwsu",   XO (4, 460,0,0),XO_MASK,     MULHW|PPCVLE, PPCNONE,     {RT, RA, RB}},
 {"maclhwsu.",  XO (4, 460,0,1),XO_MASK,     MULHW|PPCVLE, PPCNONE,     {RT, RA, RB}},
 {"vcmpbfp",    VXR(4, 966,0),  VXR_MASK,    PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"vctsxs",     VX (4, 970),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VB, UIMM}},
+{"vcfpsxsw",   VX (4, 970),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VB, UIMM}},
 {"vupklpx",    VX (4, 974),    VXVA_MASK,   PPCVEC|PPCVLE, PPCNONE,    {VD, VB}},
 {"maclhws",    XO (4, 492,0,0),XO_MASK,     MULHW|PPCVLE, PPCNONE,     {RT, RA, RB}},
 {"maclhws.",   XO (4, 492,0,1),XO_MASK,     MULHW|PPCVLE, PPCNONE,     {RT, RA, RB}},
@@ -3234,6 +3241,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"vsubuwm",    VX (4,1152),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"vavguw",     VX (4,1154),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"vabsduw",    VX (4,1155),    VX_MASK,     PPCVEC2,   PPCNONE,        {VD, VA, VB}},
+{"vmr",                VX (4,1156),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VBA}},
 {"vor",                VX (4,1156),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"vcmpequw.",  VXR(4, 134,1),  VXR_MASK,    PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"udi2fcm.",   APU(4, 579,0), APU_MASK, PPC405|PPC440, PPC476,         {URT, URA, URB}},
@@ -3268,6 +3276,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"vavgsb",     VX (4,1282),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"evmhessfaaw",        VX (4,1283),    VX_MASK,     PPCSPE|PPCVLE, PPCNONE,    {RS, RA, RB}},
 {"evmhousiaaw",        VX (4,1284),    VX_MASK,     PPCSPE|PPCVLE, PPCNONE,    {RS, RA, RB}},
+{"vnot",       VX (4,1284),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VBA}},
 {"vnor",       VX (4,1284),    VX_MASK,     PPCVEC|PPCVLE, PPCNONE,    {VD, VA, VB}},
 {"evmhossiaaw",        VX (4,1285),    VX_MASK,     PPCSPE|PPCVLE, PPCNONE,    {RS, RA, RB}},
 {"udi4fcm.",   APU(4, 643,0), APU_MASK, PPC405|PPC440, PPC476,         {URT, URA, URB}},
@@ -4818,6 +4827,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"mfdvlim",    XSPR(31,339,883), XSPR_MASK, TITAN,     PPCNONE,        {RT}},
 {"mfclcsr",    XSPR(31,339,884), XSPR_MASK, TITAN,     PPCNONE,        {RT}},
 {"mfccr1",     XSPR(31,339,888), XSPR_MASK, TITAN,     PPCNONE,        {RT}},
+{"mfppr",      XSPR(31,339,896), XSPR_MASK, POWER7,    PPCNONE,        {RT}},
+{"mfppr32",    XSPR(31,339,898), XSPR_MASK, POWER7,    PPCNONE,        {RT}},
 {"mfrstcfg",   XSPR(31,339,923), XSPR_MASK, TITAN,     PPCNONE,        {RT}},
 {"mfdcdbtrl",  XSPR(31,339,924), XSPR_MASK, TITAN,     PPCNONE,        {RT}},
 {"mfdcdbtrh",  XSPR(31,339,925), XSPR_MASK, TITAN,     PPCNONE,        {RT}},
@@ -5121,6 +5132,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"mtdvlim",    XSPR(31,467,883), XSPR_MASK, TITAN,     PPCNONE,        {RS}},
 {"mtclcsr",    XSPR(31,467,884), XSPR_MASK, TITAN,     PPCNONE,        {RS}},
 {"mtccr1",     XSPR(31,467,888), XSPR_MASK, TITAN,     PPCNONE,        {RS}},
+{"mtppr",      XSPR(31,467,896), XSPR_MASK, POWER7,    PPCNONE,        {RS}},
+{"mtppr32",    XSPR(31,467,898), XSPR_MASK, POWER7,    PPCNONE,        {RS}},
 {"mtummcr0",   XSPR(31,467,936), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
 {"mtupmc1",    XSPR(31,467,937), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
 {"mtupmc2",    XSPR(31,467,938), XSPR_MASK, PPC750,    PPCNONE,        {RS}},