aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/testsuite/ChangeLog12
-rw-r--r--gas/testsuite/gas/ppc/476.d8
-rw-r--r--gas/testsuite/gas/ppc/a2.d4
-rw-r--r--gas/testsuite/gas/ppc/a2.s8
-rw-r--r--gas/testsuite/gas/ppc/booke.d2
-rw-r--r--gas/testsuite/gas/ppc/booke.s2
-rw-r--r--gas/testsuite/gas/ppc/power7.d216
-rw-r--r--gas/testsuite/gas/ppc/power7.s12
-rw-r--r--opcodes/ChangeLog14
-rw-r--r--opcodes/ppc-opc.c32
10 files changed, 158 insertions, 152 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index ca8f159..afa8fd0 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,15 @@
+2015-04-27 Peter Bergner <bergner@vnet.ibm.com>
+
+ * gas/ppc/a2.s: Fixup test case due to dcbt/dcbtst embedded operand
+ ordering change.
+ * gas/ppc/a2.d: Likewise.
+ * gas/ppc/476.d: Likewise.
+ * gas/ppc/booke.s: Remove invalid 3 operand dcbt tests.
+ * gas/ppc/booke.d: Likewise.
+ * gas/ppc/power7.s: Remove lbarx, lharx, stbcx., sthcx., waitrsv
+ and waitimpl tests.
+ * gas/ppc/power7.d: Likewise.
+
2015-04-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* doc/as.texinfo: Document Tag_GNU_S390_ABI_Vector.
diff --git a/gas/testsuite/gas/ppc/476.d b/gas/testsuite/gas/ppc/476.d
index e59e2e9..253323c 100644
--- a/gas/testsuite/gas/ppc/476.d
+++ b/gas/testsuite/gas/ppc/476.d
@@ -90,13 +90,13 @@ Disassembly of section \.text:
140: (7c 06 3b ac|ac 3b 06 7c) dcbi r6,r7
144: (7c 85 33 0c|0c 33 85 7c) dcblc 4,r5,r6
148: (7c 06 38 6c|6c 38 06 7c) dcbst r6,r7
- 14c: (7c c0 2a 2c|2c 2a c0 7c) dcbt 0,r5,6
+ 14c: (7c 05 32 2c|2c 32 05 7c) dcbt r5,r6
150: (7c 05 32 2c|2c 32 05 7c) dcbt r5,r6
- 154: (7c c8 2a 2c|2c 2a c8 7c) dcbt r8,r5,6
+ 154: (7d 05 32 2c|2c 32 05 7d) dcbt 8,r5,r6
158: (7c e8 49 4c|4c 49 e8 7c) dcbtls 7,r8,r9
- 15c: (7c e0 31 ec|ec 31 e0 7c) dcbtst 0,r6,7
+ 15c: (7c 06 39 ec|ec 39 06 7c) dcbtst r6,r7
160: (7c 06 39 ec|ec 39 06 7c) dcbtst r6,r7
- 164: (7c e9 31 ec|ec 31 e9 7c) dcbtst r9,r6,7
+ 164: (7d 26 39 ec|ec 39 26 7d) dcbtst 9,r6,r7
168: (7d 4b 61 0c|0c 61 4b 7d) dcbtstls 10,r11,r12
16c: (7c 01 17 ec|ec 17 01 7c) dcbz r1,r2
170: (7c 05 37 ec|ec 37 05 7c) dcbz r5,r6
diff --git a/gas/testsuite/gas/ppc/a2.d b/gas/testsuite/gas/ppc/a2.d
index a743402..700c665 100644
--- a/gas/testsuite/gas/ppc/a2.d
+++ b/gas/testsuite/gas/ppc/a2.d
@@ -117,12 +117,12 @@ Disassembly of section \.text:
164: (7c 0a 58 6c|6c 58 0a 7c) dcbst r10,r11
168: (7c 0a 58 7e|7e 58 0a 7c) dcbstep r10,r11
16c: (7c 0a 5a 2c|2c 5a 0a 7c) dcbt r10,r11
- 170: (7c 2a 5a 2c|2c 5a 2a 7c) dcbt r10,r11,1
+ 170: (7c 2a 5a 2c|2c 5a 2a 7c) dcbt 1,r10,r11
174: (7d 4b 62 7e|7e 62 4b 7d) dcbtep r10,r11,r12
178: (7c 0a 59 4c|4c 59 0a 7c) dcbtls r10,r11
17c: (7c 2a 59 4c|4c 59 2a 7c) dcbtls 1,r10,r11
180: (7c 0a 59 ec|ec 59 0a 7c) dcbtst r10,r11
- 184: (7c 2a 59 ec|ec 59 2a 7c) dcbtst r10,r11,1
+ 184: (7c 2a 59 ec|ec 59 2a 7c) dcbtst 1,r10,r11
188: (7d 4b 61 fe|fe 61 4b 7d) dcbtstep r10,r11,r12
18c: (7c 0a 59 0c|0c 59 0a 7c) dcbtstls r10,r11
190: (7c 2a 59 0c|0c 59 2a 7c) dcbtstls 1,r10,r11
diff --git a/gas/testsuite/gas/ppc/a2.s b/gas/testsuite/gas/ppc/a2.s
index bcab185..7d0ddc7 100644
--- a/gas/testsuite/gas/ppc/a2.s
+++ b/gas/testsuite/gas/ppc/a2.s
@@ -91,13 +91,13 @@ start:
dcblc 1,10,11
dcbst 10,11
dcbstep 10,11
- dcbt 10,11,0
- dcbt 10,11,1
+ dcbt 0,10,11
+ dcbt 1,10,11
dcbtep 10,11,12
dcbtls 0,10,11
dcbtls 1,10,11
- dcbtst 10,11,0
- dcbtst 10,11,1
+ dcbtst 0,10,11
+ dcbtst 1,10,11
dcbtstep 10,11,12
dcbtstls 0,10,11
dcbtstls 1,10,11
diff --git a/gas/testsuite/gas/ppc/booke.d b/gas/testsuite/gas/ppc/booke.d
index c427141..26bbdce 100644
--- a/gas/testsuite/gas/ppc/booke.d
+++ b/gas/testsuite/gas/ppc/booke.d
@@ -39,5 +39,3 @@ Disassembly of section \.text:
6c: (7c 17 43 a6|a6 43 17 7c) mtsprg 7,r0
70: (7c 17 43 a6|a6 43 17 7c) mtsprg 7,r0
74: (7c 05 32 2c|2c 32 05 7c) dcbt r5,r6
- 78: (7c 05 32 2c|2c 32 05 7c) dcbt r5,r6
- 7c: (7d 05 32 2c|2c 32 05 7d) dcbt 8,r5,r6
diff --git a/gas/testsuite/gas/ppc/booke.s b/gas/testsuite/gas/ppc/booke.s
index 3947c61..7c8b1ff 100644
--- a/gas/testsuite/gas/ppc/booke.s
+++ b/gas/testsuite/gas/ppc/booke.s
@@ -38,5 +38,3 @@ branch_target_2:
mtsprg7 0
dcbt 5,6
- dcbt 0,5,6
- dcbt 8,5,6
diff --git a/gas/testsuite/gas/ppc/power7.d b/gas/testsuite/gas/ppc/power7.d
index 602da4b..bed98ce 100644
--- a/gas/testsuite/gas/ppc/power7.d
+++ b/gas/testsuite/gas/ppc/power7.d
@@ -7,118 +7,106 @@
Disassembly of section \.text:
0+00 <power7>:
- 0: (7c 64 2e 98|98 2e 64 7c) lxvd2x vs3,r4,r5
- 4: (7d 64 2e 99|99 2e 64 7d) lxvd2x vs43,r4,r5
- 8: (7c 64 2f 98|98 2f 64 7c) stxvd2x vs3,r4,r5
- c: (7d 64 2f 99|99 2f 64 7d) stxvd2x vs43,r4,r5
- 10: (f0 64 28 50|50 28 64 f0) xxmrghd vs3,vs4,vs5
- 14: (f1 6c 68 57|57 68 6c f1) xxmrghd vs43,vs44,vs45
- 18: (f0 64 2b 50|50 2b 64 f0) xxmrgld vs3,vs4,vs5
- 1c: (f1 6c 6b 57|57 6b 6c f1) xxmrgld vs43,vs44,vs45
- 20: (f0 64 28 50|50 28 64 f0) xxmrghd vs3,vs4,vs5
- 24: (f1 6c 68 57|57 68 6c f1) xxmrghd vs43,vs44,vs45
- 28: (f0 64 2b 50|50 2b 64 f0) xxmrgld vs3,vs4,vs5
- 2c: (f1 6c 6b 57|57 6b 6c f1) xxmrgld vs43,vs44,vs45
- 30: (f0 64 29 50|50 29 64 f0) xxpermdi vs3,vs4,vs5,1
- 34: (f1 6c 69 57|57 69 6c f1) xxpermdi vs43,vs44,vs45,1
- 38: (f0 64 2a 50|50 2a 64 f0) xxpermdi vs3,vs4,vs5,2
- 3c: (f1 6c 6a 57|57 6a 6c f1) xxpermdi vs43,vs44,vs45,2
- 40: (f0 64 27 80|80 27 64 f0) xvmovdp vs3,vs4
- 44: (f1 6c 67 87|87 67 6c f1) xvmovdp vs43,vs44
- 48: (f0 64 27 80|80 27 64 f0) xvmovdp vs3,vs4
- 4c: (f1 6c 67 87|87 67 6c f1) xvmovdp vs43,vs44
- 50: (f0 64 2f 80|80 2f 64 f0) xvcpsgndp vs3,vs4,vs5
- 54: (f1 6c 6f 87|87 6f 6c f1) xvcpsgndp vs43,vs44,vs45
- 58: (7c 00 00 7c|7c 00 00 7c) wait
- 5c: (7c 00 00 7c|7c 00 00 7c) wait
- 60: (7c 20 00 7c|7c 00 20 7c) waitrsv
- 64: (7c 20 00 7c|7c 00 20 7c) waitrsv
- 68: (7c 40 00 7c|7c 00 40 7c) waitimpl
- 6c: (7c 40 00 7c|7c 00 40 7c) waitimpl
- 70: (4c 00 03 24|24 03 00 4c) doze
- 74: (4c 00 03 64|64 03 00 4c) nap
- 78: (4c 00 03 a4|a4 03 00 4c) sleep
- 7c: (4c 00 03 e4|e4 03 00 4c) rvwinkle
- 80: (7c 83 01 34|34 01 83 7c) prtyw r3,r4
- 84: (7d cd 01 74|74 01 cd 7d) prtyd r13,r14
- 88: (7d 5c 02 a6|a6 02 5c 7d) mfcfar r10
- 8c: (7d 7c 03 a6|a6 03 7c 7d) mtcfar r11
- 90: (7c 83 2b f8|f8 2b 83 7c) cmpb r3,r4,r5
- 94: (7d 4b 66 2a|2a 66 4b 7d) lwzcix r10,r11,r12
- 98: (ee 11 90 04|04 90 11 ee) dadd f16,f17,f18
- 9c: (fe 96 c0 04|04 c0 96 fe) daddq f20,f22,f24
- a0: (7c 60 06 6c|6c 06 60 7c) dss 3
- a4: (7e 00 06 6c|6c 06 00 7e) dssall
- a8: (7c 25 22 ac|ac 22 25 7c) dst r5,r4,1
- ac: (7e 08 3a ac|ac 3a 08 7e) dstt r8,r7,0
- b0: (7c 65 32 ec|ec 32 65 7c) dstst r5,r6,3
- b4: (7e 44 2a ec|ec 2a 44 7e) dststt r4,r5,2
- b8: (7d 4b 63 56|56 63 4b 7d) divwe r10,r11,r12
- bc: (7d 6c 6b 57|57 6b 6c 7d) divwe\. r11,r12,r13
- c0: (7d 8d 77 56|56 77 8d 7d) divweo r12,r13,r14
- c4: (7d ae 7f 57|57 7f ae 7d) divweo\. r13,r14,r15
- c8: (7d 4b 63 16|16 63 4b 7d) divweu r10,r11,r12
- cc: (7d 6c 6b 17|17 6b 6c 7d) divweu\. r11,r12,r13
- d0: (7d 8d 77 16|16 77 8d 7d) divweuo r12,r13,r14
- d4: (7d ae 7f 17|17 7f ae 7d) divweuo\. r13,r14,r15
- d8: (7e 27 d9 f8|f8 d9 27 7e) bpermd r7,r17,r27
- dc: (7e 8a 02 f4|f4 02 8a 7e) popcntw r10,r20
- e0: (7e 8a 03 f4|f4 03 8a 7e) popcntd r10,r20
- e4: (7e 95 b4 28|28 b4 95 7e) ldbrx r20,r21,r22
- e8: (7e 95 b5 28|28 b5 95 7e) stdbrx r20,r21,r22
- ec: (7d 40 56 ee|ee 56 40 7d) lfiwzx f10,0,r10
- f0: (7d 49 56 ee|ee 56 49 7d) lfiwzx f10,r9,r10
- f4: (ec 80 2e 9c|9c 2e 80 ec) fcfids f4,f5
- f8: (ec 80 2e 9d|9d 2e 80 ec) fcfids\. f4,f5
- fc: (ec 80 2f 9c|9c 2f 80 ec) fcfidus f4,f5
- 100: (ec 80 2f 9d|9d 2f 80 ec) fcfidus\. f4,f5
- 104: (fc 80 29 1c|1c 29 80 fc) fctiwu f4,f5
- 108: (fc 80 29 1d|1d 29 80 fc) fctiwu\. f4,f5
- 10c: (fc 80 29 1e|1e 29 80 fc) fctiwuz f4,f5
- 110: (fc 80 29 1f|1f 29 80 fc) fctiwuz\. f4,f5
- 114: (fc 80 2f 5c|5c 2f 80 fc) fctidu f4,f5
- 118: (fc 80 2f 5d|5d 2f 80 fc) fctidu\. f4,f5
- 11c: (fc 80 2f 5e|5e 2f 80 fc) fctiduz f4,f5
- 120: (fc 80 2f 5f|5f 2f 80 fc) fctiduz\. f4,f5
- 124: (fc 80 2f 9c|9c 2f 80 fc) fcfidu f4,f5
- 128: (fc 80 2f 9d|9d 2f 80 fc) fcfidu\. f4,f5
- 12c: (fc 0a 59 00|00 59 0a fc) ftdiv cr0,f10,f11
- 130: (ff 8a 59 00|00 59 8a ff) ftdiv cr7,f10,f11
- 134: (fc 00 51 40|40 51 00 fc) ftsqrt cr0,f10
- 138: (ff 80 51 40|40 51 80 ff) ftsqrt cr7,f10
- 13c: (7e 08 4a 2c|2c 4a 08 7e) dcbtt r8,r9
- 140: (7e 08 49 ec|ec 49 08 7e) dcbtstt r8,r9
- 144: (ed 40 66 44|44 66 40 ed) dcffix f10,f12
- 148: (ee 80 b6 45|45 b6 80 ee) dcffix\. f20,f22
- 14c: (7d 4b 60 68|68 60 4b 7d) lbarx r10,r11,r12
- 150: (7d 4b 60 68|68 60 4b 7d) lbarx r10,r11,r12
- 154: (7d 4b 60 69|69 60 4b 7d) lbarx r10,r11,r12,1
- 158: (7e 95 b0 e8|e8 b0 95 7e) lharx r20,r21,r22
- 15c: (7e 95 b0 e8|e8 b0 95 7e) lharx r20,r21,r22
- 160: (7e 95 b0 e9|e9 b0 95 7e) lharx r20,r21,r22,1
- 164: (7d 4b 65 6d|6d 65 4b 7d) stbcx\. r10,r11,r12
- 168: (7d 4b 65 ad|ad 65 4b 7d) sthcx\. r10,r11,r12
- 16c: (fd c0 78 30|30 78 c0 fd) fre f14,f15
- 170: (fd c0 78 31|31 78 c0 fd) fre\. f14,f15
- 174: (ed c0 78 30|30 78 c0 ed) fres f14,f15
- 178: (ed c0 78 31|31 78 c0 ed) fres\. f14,f15
- 17c: (fd c0 78 34|34 78 c0 fd) frsqrte f14,f15
- 180: (fd c0 78 35|35 78 c0 fd) frsqrte\. f14,f15
- 184: (ed c0 78 34|34 78 c0 ed) frsqrtes f14,f15
- 188: (ed c0 78 35|35 78 c0 ed) frsqrtes\. f14,f15
- 18c: (7c 43 27 1e|1e 27 43 7c) isel r2,r3,r4,28
- 190: (60 42 00 00|00 00 42 60) ori r2,r2,0
- 194: (60 00 00 00|00 00 00 60) nop
- 198: (60 00 00 00|00 00 00 60) nop
- 19c: (60 42 00 00|00 00 42 60) ori r2,r2,0
- 1a0: (7f 7b db 78|78 db 7b 7f) yield
- 1a4: (7f 7b db 78|78 db 7b 7f) yield
- 1a8: (7f bd eb 78|78 eb bd 7f) mdoio
- 1ac: (7f bd eb 78|78 eb bd 7f) mdoio
- 1b0: (7f de f3 78|78 f3 de 7f) mdoom
- 1b4: (7f de f3 78|78 f3 de 7f) mdoom
- 1b8: (7d 40 e2 a6|a6 e2 40 7d) mfppr r10
- 1bc: (7d 62 e2 a6|a6 e2 62 7d) mfppr32 r11
- 1c0: (7d 80 e3 a6|a6 e3 80 7d) mtppr r12
- 1c4: (7d a2 e3 a6|a6 e3 a2 7d) mtppr32 r13
+.*: (7c 64 2e 98|98 2e 64 7c) lxvd2x vs3,r4,r5
+.*: (7d 64 2e 99|99 2e 64 7d) lxvd2x vs43,r4,r5
+.*: (7c 64 2f 98|98 2f 64 7c) stxvd2x vs3,r4,r5
+.*: (7d 64 2f 99|99 2f 64 7d) stxvd2x vs43,r4,r5
+.*: (f0 64 28 50|50 28 64 f0) xxmrghd vs3,vs4,vs5
+.*: (f1 6c 68 57|57 68 6c f1) xxmrghd vs43,vs44,vs45
+.*: (f0 64 2b 50|50 2b 64 f0) xxmrgld vs3,vs4,vs5
+.*: (f1 6c 6b 57|57 6b 6c f1) xxmrgld vs43,vs44,vs45
+.*: (f0 64 28 50|50 28 64 f0) xxmrghd vs3,vs4,vs5
+.*: (f1 6c 68 57|57 68 6c f1) xxmrghd vs43,vs44,vs45
+.*: (f0 64 2b 50|50 2b 64 f0) xxmrgld vs3,vs4,vs5
+.*: (f1 6c 6b 57|57 6b 6c f1) xxmrgld vs43,vs44,vs45
+.*: (f0 64 29 50|50 29 64 f0) xxpermdi vs3,vs4,vs5,1
+.*: (f1 6c 69 57|57 69 6c f1) xxpermdi vs43,vs44,vs45,1
+.*: (f0 64 2a 50|50 2a 64 f0) xxpermdi vs3,vs4,vs5,2
+.*: (f1 6c 6a 57|57 6a 6c f1) xxpermdi vs43,vs44,vs45,2
+.*: (f0 64 27 80|80 27 64 f0) xvmovdp vs3,vs4
+.*: (f1 6c 67 87|87 67 6c f1) xvmovdp vs43,vs44
+.*: (f0 64 27 80|80 27 64 f0) xvmovdp vs3,vs4
+.*: (f1 6c 67 87|87 67 6c f1) xvmovdp vs43,vs44
+.*: (f0 64 2f 80|80 2f 64 f0) xvcpsgndp vs3,vs4,vs5
+.*: (f1 6c 6f 87|87 6f 6c f1) xvcpsgndp vs43,vs44,vs45
+.*: (7c 00 00 7c|7c 00 00 7c) wait
+.*: (7c 00 00 7c|7c 00 00 7c) wait
+.*: (4c 00 03 24|24 03 00 4c) doze
+.*: (4c 00 03 64|64 03 00 4c) nap
+.*: (4c 00 03 a4|a4 03 00 4c) sleep
+.*: (4c 00 03 e4|e4 03 00 4c) rvwinkle
+.*: (7c 83 01 34|34 01 83 7c) prtyw r3,r4
+.*: (7d cd 01 74|74 01 cd 7d) prtyd r13,r14
+.*: (7d 5c 02 a6|a6 02 5c 7d) mfcfar r10
+.*: (7d 7c 03 a6|a6 03 7c 7d) mtcfar r11
+.*: (7c 83 2b f8|f8 2b 83 7c) cmpb r3,r4,r5
+.*: (7d 4b 66 2a|2a 66 4b 7d) lwzcix r10,r11,r12
+.*: (ee 11 90 04|04 90 11 ee) dadd f16,f17,f18
+.*: (fe 96 c0 04|04 c0 96 fe) daddq f20,f22,f24
+.*: (7c 60 06 6c|6c 06 60 7c) dss 3
+.*: (7e 00 06 6c|6c 06 00 7e) dssall
+.*: (7c 25 22 ac|ac 22 25 7c) dst r5,r4,1
+.*: (7e 08 3a ac|ac 3a 08 7e) dstt r8,r7,0
+.*: (7c 65 32 ec|ec 32 65 7c) dstst r5,r6,3
+.*: (7e 44 2a ec|ec 2a 44 7e) dststt r4,r5,2
+.*: (7d 4b 63 56|56 63 4b 7d) divwe r10,r11,r12
+.*: (7d 6c 6b 57|57 6b 6c 7d) divwe\. r11,r12,r13
+.*: (7d 8d 77 56|56 77 8d 7d) divweo r12,r13,r14
+.*: (7d ae 7f 57|57 7f ae 7d) divweo\. r13,r14,r15
+.*: (7d 4b 63 16|16 63 4b 7d) divweu r10,r11,r12
+.*: (7d 6c 6b 17|17 6b 6c 7d) divweu\. r11,r12,r13
+.*: (7d 8d 77 16|16 77 8d 7d) divweuo r12,r13,r14
+.*: (7d ae 7f 17|17 7f ae 7d) divweuo\. r13,r14,r15
+.*: (7e 27 d9 f8|f8 d9 27 7e) bpermd r7,r17,r27
+.*: (7e 8a 02 f4|f4 02 8a 7e) popcntw r10,r20
+.*: (7e 8a 03 f4|f4 03 8a 7e) popcntd r10,r20
+.*: (7e 95 b4 28|28 b4 95 7e) ldbrx r20,r21,r22
+.*: (7e 95 b5 28|28 b5 95 7e) stdbrx r20,r21,r22
+.*: (7d 40 56 ee|ee 56 40 7d) lfiwzx f10,0,r10
+.*: (7d 49 56 ee|ee 56 49 7d) lfiwzx f10,r9,r10
+.*: (ec 80 2e 9c|9c 2e 80 ec) fcfids f4,f5
+.*: (ec 80 2e 9d|9d 2e 80 ec) fcfids\. f4,f5
+.*: (ec 80 2f 9c|9c 2f 80 ec) fcfidus f4,f5
+.*: (ec 80 2f 9d|9d 2f 80 ec) fcfidus\. f4,f5
+.*: (fc 80 29 1c|1c 29 80 fc) fctiwu f4,f5
+.*: (fc 80 29 1d|1d 29 80 fc) fctiwu\. f4,f5
+.*: (fc 80 29 1e|1e 29 80 fc) fctiwuz f4,f5
+.*: (fc 80 29 1f|1f 29 80 fc) fctiwuz\. f4,f5
+.*: (fc 80 2f 5c|5c 2f 80 fc) fctidu f4,f5
+.*: (fc 80 2f 5d|5d 2f 80 fc) fctidu\. f4,f5
+.*: (fc 80 2f 5e|5e 2f 80 fc) fctiduz f4,f5
+.*: (fc 80 2f 5f|5f 2f 80 fc) fctiduz\. f4,f5
+.*: (fc 80 2f 9c|9c 2f 80 fc) fcfidu f4,f5
+.*: (fc 80 2f 9d|9d 2f 80 fc) fcfidu\. f4,f5
+.*: (fc 0a 59 00|00 59 0a fc) ftdiv cr0,f10,f11
+.*: (ff 8a 59 00|00 59 8a ff) ftdiv cr7,f10,f11
+.*: (fc 00 51 40|40 51 00 fc) ftsqrt cr0,f10
+.*: (ff 80 51 40|40 51 80 ff) ftsqrt cr7,f10
+.*: (7e 08 4a 2c|2c 4a 08 7e) dcbtt r8,r9
+.*: (7e 08 49 ec|ec 49 08 7e) dcbtstt r8,r9
+.*: (ed 40 66 44|44 66 40 ed) dcffix f10,f12
+.*: (ee 80 b6 45|45 b6 80 ee) dcffix\. f20,f22
+.*: (fd c0 78 30|30 78 c0 fd) fre f14,f15
+.*: (fd c0 78 31|31 78 c0 fd) fre\. f14,f15
+.*: (ed c0 78 30|30 78 c0 ed) fres f14,f15
+.*: (ed c0 78 31|31 78 c0 ed) fres\. f14,f15
+.*: (fd c0 78 34|34 78 c0 fd) frsqrte f14,f15
+.*: (fd c0 78 35|35 78 c0 fd) frsqrte\. f14,f15
+.*: (ed c0 78 34|34 78 c0 ed) frsqrtes f14,f15
+.*: (ed c0 78 35|35 78 c0 ed) frsqrtes\. f14,f15
+.*: (7c 43 27 1e|1e 27 43 7c) isel r2,r3,r4,28
+.*: (60 42 00 00|00 00 42 60) ori r2,r2,0
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (60 42 00 00|00 00 42 60) ori r2,r2,0
+.*: (7f 7b db 78|78 db 7b 7f) yield
+.*: (7f 7b db 78|78 db 7b 7f) yield
+.*: (7f bd eb 78|78 eb bd 7f) mdoio
+.*: (7f bd eb 78|78 eb bd 7f) mdoio
+.*: (7f de f3 78|78 f3 de 7f) mdoom
+.*: (7f de f3 78|78 f3 de 7f) mdoom
+.*: (7d 40 e2 a6|a6 e2 40 7d) mfppr r10
+.*: (7d 62 e2 a6|a6 e2 62 7d) mfppr32 r11
+.*: (7d 80 e3 a6|a6 e3 80 7d) mtppr r12
+.*: (7d a2 e3 a6|a6 e3 a2 7d) mtppr32 r13
#pass
diff --git a/gas/testsuite/gas/ppc/power7.s b/gas/testsuite/gas/ppc/power7.s
index 46518d4..e76884e 100644
--- a/gas/testsuite/gas/ppc/power7.s
+++ b/gas/testsuite/gas/ppc/power7.s
@@ -24,10 +24,6 @@ power7:
xvcpsgndp 43,44,45
wait
wait 0
- waitrsv
- wait 1
- waitimpl
- wait 2
doze
nap
sleep
@@ -83,14 +79,6 @@ power7:
dcbtstt 8,9
dcffix 10,12
dcffix. 20,22
- lbarx 10,11,12
- lbarx 10,11,12,0
- lbarx 10,11,12,1
- lharx 20,21,22
- lharx 20,21,22,0
- lharx 20,21,22,1
- stbcx. 10,11,12
- sthcx. 10,11,12
fre 14,15
fre. 14,15
fres 14,15
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 48886f6..e42b545 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,17 @@
+2015-04-27 Peter Bergner <bergner@vnet.ibm.com>
+
+ * ppc-opc.c (DCBT_EO): New define.
+ (powerpc_opcodes) <lbarx>: Enable for POWER8 and later.
+ <lharx>: Likewise.
+ <stbcx.>: Likewise.
+ <sthcx.>: Likewise.
+ <waitrsv>: Do not enable for POWER7 and later.
+ <waitimpl>: Likewise.
+ <dcbt>: Default to the two operand form of the instruction for all
+ "old" cpus. For "new" cpus, use the operand ordering that matches
+ whether the cpu is server or embedded.
+ <dcbtst>: Likewise.
+
2015-04-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* s390-opc.c: New instruction type VV0UU2.
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
index 060223f..afd8382 100644
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
@@ -2756,6 +2756,12 @@ extract_vleil (unsigned long insn,
#define E6500 PPC_OPCODE_E6500
#define PPCVLE PPC_OPCODE_VLE
#define PPCHTM PPC_OPCODE_HTM
+/* The list of embedded processors that use the embedded operand ordering
+ for the 3 operand dcbt and dcbtst instructions. */
+#define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
+ | PPC_OPCODE_A2 | PPC_OPCODE_VLE)
+
+
/* The opcode table.
@@ -4463,7 +4469,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"mfvrd", X(31,51)|1, XX1RB_MASK|1, PPCVSX2, PPCNONE, {RA, VS}},
{"eratilx", X(31,51), X_MASK, PPCA2, PPCNONE, {ERAT_T, RA, RB}},
-{"lbarx", X(31,52), XEH_MASK, POWER7|PPCVLE, PPCNONE, {RT, RA0, RB, EH}},
+{"lbarx", X(31,52), XEH_MASK, POWER8|PPCVLE, PPCNONE, {RT, RA0, RB, EH}},
{"ldux", X(31,53), X_MASK, PPC64|PPCVLE, PPCNONE, {RT, RAL, RB}},
@@ -4478,8 +4484,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"andc", XRC(31,60,0), X_MASK, COM|PPCVLE, PPCNONE, {RA, RS, RB}},
{"andc.", XRC(31,60,1), X_MASK, COM|PPCVLE, PPCNONE, {RA, RS, RB}},
-{"waitrsv", X(31,62)|(1<<21), 0xffffffff, POWER7|E500MC|PPCA2, PPCNONE, {0}},
-{"waitimpl", X(31,62)|(2<<21), 0xffffffff, POWER7|E500MC|PPCA2, PPCNONE, {0}},
+{"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, PPCNONE, {0}},
+{"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, PPCNONE, {0}},
{"wait", X(31,62), XWC_MASK, POWER7|E500MC|PPCA2|PPCVLE, PPCNONE, {WC}},
{"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2|PPCVLE, PPCNONE, {RA0, RB}},
@@ -4543,7 +4549,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"mfvrwz", X(31,115)|1, XX1RB_MASK|1, PPCVSX2, PPCNONE, {RA, VS}},
{"mfvsrwz", X(31,115), XX1RB_MASK, PPCVSX2, PPCNONE, {RA, XS6}},
-{"lharx", X(31,116), XEH_MASK, POWER7|PPCVLE, PPCNONE, {RT, RA0, RB, EH}},
+{"lharx", X(31,116), XEH_MASK, POWER8|PPCVLE, PPCNONE, {RT, RA0, RB, EH}},
{"clf", X(31,118), XTO_MASK, POWER, PPCNONE, {RA, RB}},
@@ -4711,9 +4717,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"mtvsrwz", X(31,243), XX1RB_MASK, PPCVSX2, PPCNONE, {XT6, RA}},
{"dcbtstt", XRT(31,246,0x10), XRT_MASK, POWER7, PPCNONE, {RA0, RB}},
-{"dcbtst", X(31,246), X_MASK, POWER4, PPCNONE, {RA0, RB, CT}},
-{"dcbtst", X(31,246), X_MASK, PPC|PPCVLE, POWER4, {CT, RA0, RB}},
-
+{"dcbtst", X(31,246), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
+{"dcbtst", X(31,246), X_MASK, DCBT_EO, PPCNONE, {CT, RA0, RB}},
+{"dcbtst", X(31,246), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
+
{"stbux", X(31,247), X_MASK, COM|PPCVLE, PPCNONE, {RS, RAS, RB}},
{"slliq", XRC(31,248,0), X_MASK, M601, PPCNONE, {RA, RS, SH}},
@@ -4753,9 +4760,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"lscbx.", XRC(31,277,1), X_MASK, M601, PPCNONE, {RT, RA, RB}},
{"dcbtt", XRT(31,278,0x10), XRT_MASK, POWER7, PPCNONE, {RA0, RB}},
-{"dcbt", X(31,278), X_MASK, POWER4, PPCNONE, {RA0, RB, CT}},
-{"dcbt", X(31,278), X_MASK, PPC|PPCVLE, POWER4, {CT, RA0, RB}},
-
+{"dcbt", X(31,278), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
+{"dcbt", X(31,278), X_MASK, DCBT_EO, PPCNONE, {CT, RA0, RB}},
+{"dcbt", X(31,278), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
+
{"lhzx", X(31,279), X_MASK, COM|PPCVLE, PPCNONE, {RT, RA0, RB}},
{"cdtbcd", X(31,282), XRB_MASK, POWER6, PPCNONE, {RA, RS}},
@@ -5531,7 +5539,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"tendall.", XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, PPCNONE, {0}},
{"tend.", XRC(31,686,1), XRTARARB_MASK, PPCHTM, PPCNONE, {HTM_A}},
-{"stbcx.", XRC(31,694,1), X_MASK, POWER7, PPCNONE, {RS, RA0, RB}},
+{"stbcx.", XRC(31,694,1), X_MASK, POWER8, PPCNONE, {RS, RA0, RB}},
{"stfsux", X(31,695), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
@@ -5561,7 +5569,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"stswi", X(31,725), X_MASK, PPCCOM|PPCVLE, E500|E500MC, {RS, RA0, NB}},
{"stsi", X(31,725), X_MASK, PWRCOM, PPCNONE, {RS, RA0, NB}},
-{"sthcx.", XRC(31,726,1), X_MASK, POWER7, PPCNONE, {RS, RA0, RB}},
+{"sthcx.", XRC(31,726,1), X_MASK, POWER8, PPCNONE, {RS, RA0, RB}},
{"stfdx", X(31,727), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},