Remove ppc860, ppc750cl, ppc7450 insns from common ppc.
authorAlan Modra <amodra@gmail.com>
Fri, 3 Jul 2015 01:26:26 +0000 (10:56 +0930)
committerAlan Modra <amodra@gmail.com>
Fri, 3 Jul 2015 01:27:14 +0000 (10:57 +0930)
Back in the day support for these processors was added, we probably
didn't want to waste PPC_OPCODE bits on minor variations.  I've had a
complaint that disassembly of mfspr/mtspr was wrong for power8.  This
patch fixes that problem.

Note that since -m860/-m850/-m821 are new gas options enabling the
mpc8xx specific mfspr/mtspr variants it is possible that this change
will break some mpc8xx assembly code.  ie. you might need to modify
makefiles to pass -m860 to gas.

include/opcode/
* ppc.h (PPC_OPCODE_750, PPC_OPCODE_7450, PPC_OPCODE_860): Define.
opcodes/
* ppc-opc.c (PPC750, PPC7450, PPC860): Define using PPC_OPCODE_*.
* ppc-dis.c (ppc_opts): Add 821, 850 and 860 entries.  Add
PPC_OPCODE_7450 to 7450 entry.  Add PPC_OPCODE_750 to 750cl entry.
gas/
* config/tc-ppc.c (md_show_usage): Add -m821, -m850, -m860.
* doc/c-ppc.texi (PowerPC-Opts): Likewise.
gas/testsuite/
* gas/ppc/titan.d: Correct mfmcsrr0 disassembly.

gas/ChangeLog
gas/config/tc-ppc.c
gas/doc/c-ppc.texi
gas/testsuite/ChangeLog
gas/testsuite/gas/ppc/titan.d
include/opcode/ChangeLog
include/opcode/ppc.h
opcodes/ChangeLog
opcodes/ppc-dis.c
opcodes/ppc-opc.c

index b18637fdbe7c9a1e913575972d039ccb188bffa1..f9d4892f94882ad5e45fa5e814d5593352635ed3 100644 (file)
@@ -1,3 +1,8 @@
+2015-07-03  Alan Modra  <amodra@gmail.com>
+
+       * config/tc-ppc.c (md_show_usage): Add -m821, -m850, -m860.
+       * doc/c-ppc.texi (PowerPC-Opts): Likewise.
+
 2015-07-01  Sandra Loosemore  <sandra@codesourcery.com>
            Cesar Philippidis  <cesar@codesourcery.com>
 
index 18a11bedbbdbcc2f6fb1ecfcd8790c9af79b2961..ce3257f8aafddffe78e60aa1a78e2e0ac123dc2f 100644 (file)
@@ -1281,7 +1281,8 @@ PowerPC options:\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"));
+-m750cl                 generate code for PowerPC 750cl\n\
+-m821, -m850, -m860     generate code for PowerPC 821/850/860\n"));
   fprintf (stream, _("\
 -mppc64, -m620          generate code for PowerPC 620/625/630\n\
 -mppc64bridge           generate code for PowerPC 64, including bridge insns\n\
index 8e4fce33ca80631ec984143daac79c560c52eac3..d318c96352f8af51cc78cf7459b9cbb2a5f5b5d7 100644 (file)
@@ -75,6 +75,9 @@ Generate code for PowerPC 7400/7410/7450/7455.
 @item -m750cl
 Generate code for PowerPC 750CL.
 
+@item -m821, -m850, -m860
+Generate code for PowerPC 821/850/860.
+
 @item -mppc64, -m620
 Generate code for PowerPC 620/625/630.
 
index 210a0d1b59a732ecfa17950e0475d42c2221ce9d..a045c852065994777a5df5dd12c320c360d13ccb 100644 (file)
@@ -1,3 +1,7 @@
+2015-07-03  Alan Modra  <alan@squeak.grove.modra.org>
+
+       * gas/ppc/titan.d: Correct mfmcsrr0 disassembly.
+
 2015-07-01  Sandra Loosemore  <sandra@codesourcery.com>
            Cesar Philippidis  <cesar@codesourcery.com>
 
index 45c41bb7f39e4caa0a9ad6974ff79e32438d38e5..e54715a7488e676261720ac928fc3ee8e7feefa7 100644 (file)
@@ -229,8 +229,8 @@ Disassembly of section \.text:
  36c:  (7c 9f 62 a6|a6 62 9f 7c)       mfivor15 r4
  370:  (7c 93 82 a6|a6 82 93 7c)       mfivor35 r4
  374:  (7c 93 82 a6|a6 82 93 7c)       mfivor35 r4
- 378:  (7c 9a 8a a6|a6 8a 9a 7c)       mfdc_dat r4
- 37c:  (7c 9a 8a a6|a6 8a 9a 7c)       mfdc_dat r4
+ 378:  (7c 9a 8a a6|a6 8a 9a 7c)       mfmcsrr0 r4
+ 37c:  (7c 9a 8a a6|a6 8a 9a 7c)       mfmcsrr0 r4
  380:  (7c 9b 8a a6|a6 8a 9b 7c)       mfmcsrr1 r4
  384:  (7c 9b 8a a6|a6 8a 9b 7c)       mfmcsrr1 r4
  388:  (7c 9c 8a a6|a6 8a 9c 7c)       mfmcsr  r4
index def21317806a50424b4ba9d821683ff888b3a68a..2f86116691e87025c16fe4b0d5e6eda13bff9548 100644 (file)
@@ -1,3 +1,7 @@
+2015-07-03  Alan Modra  <amodra@gmail.com>
+
+       * ppc.h (PPC_OPCODE_750, PPC_OPCODE_7450, PPC_OPCODE_860): Define.
+
 2015-07-01  Sandra Loosemore  <sandra@codesourcery.com>
            Cesar Philippidis  <cesar@codesourcery.com>
 
index 52463653250d3fcfaf161051d8b3f2b7e7349bae..6106dec426707753a0de62203187051c5019afe0 100644 (file)
@@ -195,6 +195,15 @@ extern const int vle_num_opcodes;
    that isn't a superset of POWER8, we can define this to its own mask.  */
 #define PPC_OPCODE_HTM        PPC_OPCODE_POWER8
 
+/* Opcode is supported by ppc750cl.  */
+#define PPC_OPCODE_750       0x4000000000ull
+
+/* Opcode is supported by ppc7450.  */
+#define PPC_OPCODE_7450              0x8000000000ull
+
+/* Opcode is supported by ppc821/850/860.  */
+#define PPC_OPCODE_860       0x10000000000ull
+
 /* A macro to extract the major opcode from an instruction.  */
 #define PPC_OP(i) (((i) >> 26) & 0x3f)
 
index a3fbc43a2fc2a76fb2b737d0307e270fc8da889a..cf446b458c383dfa2832a41541560308892d3c28 100644 (file)
@@ -1,3 +1,9 @@
+2015-07-03  Alan Modra  <amodra@gmail.com>
+
+       * ppc-opc.c (PPC750, PPC7450, PPC860): Define using PPC_OPCODE_*.
+       * ppc-dis.c (ppc_opts): Add 821, 850 and 860 entries.  Add
+       PPC_OPCODE_7450 to 7450 entry.  Add PPC_OPCODE_750 to 750cl entry.
+
 2015-07-01  Sandra Loosemore  <sandra@codesourcery.com>
            Cesar Philippidis  <cesar@codesourcery.com>
 
index 581d342cefb4d7a7a660b1ef4dd4fa726e908d12..797e1e31ca939aca8fd6374241c126b1f5e6d0f3 100644 (file)
@@ -76,12 +76,18 @@ struct ppc_mopt ppc_opts[] = {
     0 },
   { "7410",    (PPC_OPCODE_PPC | PPC_OPCODE_ALTIVEC),
     0 },
-  { "7450",    (PPC_OPCODE_PPC | PPC_OPCODE_ALTIVEC),
+  { "7450",    (PPC_OPCODE_PPC | PPC_OPCODE_7450 | PPC_OPCODE_ALTIVEC),
     0 },
   { "7455",    (PPC_OPCODE_PPC | PPC_OPCODE_ALTIVEC),
     0 },
-  { "750cl",   (PPC_OPCODE_PPC | PPC_OPCODE_PPCPS)
+  { "750cl",   (PPC_OPCODE_PPC | PPC_OPCODE_750 | PPC_OPCODE_PPCPS)
     , 0 },
+  { "821",     (PPC_OPCODE_PPC | PPC_OPCODE_860),
+    0 },
+  { "850",     (PPC_OPCODE_PPC | PPC_OPCODE_860),
+    0 },
+  { "860",     (PPC_OPCODE_PPC | PPC_OPCODE_860),
+    0 },
   { "a2",      (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_POWER4
                | PPC_OPCODE_POWER5 | PPC_OPCODE_CACHELCK | PPC_OPCODE_64
                | PPC_OPCODE_A2),
index 601ec2f7c4264a3d14347bb00d20aa1fe6cbef0d..a4aef913490b72376083714eb41f1b67a3769289 100644 (file)
@@ -2747,9 +2747,9 @@ extract_vleil (unsigned long insn,
 #define PPC440 PPC_OPCODE_440
 #define PPC464 PPC440
 #define PPC476 PPC_OPCODE_476
-#define PPC750 PPC
-#define PPC7450 PPC
-#define PPC860 PPC
+#define PPC750 PPC_OPCODE_750
+#define PPC7450 PPC_OPCODE_7450
+#define PPC860 PPC_OPCODE_860
 #define PPCPS  PPC_OPCODE_PPCPS
 #define PPCVEC PPC_OPCODE_ALTIVEC
 #define PPCVEC2        PPC_OPCODE_ALTIVEC2