You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
3.8 KiB

commit ef5a96d564a22a25d31533c7377eede42c12b25c
Author: Alan Modra <amodra@gmail.com>
Date: Fri Jul 3 10:56:26 2015 +0930
Remove ppc860, ppc750cl, ppc7450 insns from common ppc.
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.
### a/include/opcode/ChangeLog
### b/include/opcode/ChangeLog
## -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>
--- a/include/opcode/ppc.h
+++ b/include/opcode/ppc.h
@@ -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)
### a/opcodes/ChangeLog
### b/opcodes/ChangeLog
## -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>
--- a/opcodes/ppc-dis.c
+++ b/opcodes/ppc-dis.c
@@ -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),
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
@@ -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