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
107 lines
3.8 KiB
6 years ago
|
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
|