aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-ppc.c4
-rw-r--r--opcodes/ChangeLog7
-rw-r--r--opcodes/ppc-dis.c4
-rw-r--r--opcodes/ppc-opc.c5
5 files changed, 23 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 8644c79..27a50dc 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2008-06-25 Peter Bergner <bergner@vnet.ibm.com>
+
+ * config/tc-ppc.c (parse_cpu): Handle -m464.
+ (md_show_usage): Likewise.
+
2008-06-24 Eric B. Weddington <eric.weddington@atmel.com>
Add support for ATtiny13A.
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index 0aec203..927ddb6 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -854,7 +854,8 @@ parse_cpu (const char *arg)
|| strcmp (arg, "405") == 0)
ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC
| PPC_OPCODE_403 | PPC_OPCODE_32);
- else if (strcmp (arg, "440") == 0)
+ else if (strcmp (arg, "440") == 0
+ || strcmp (arg, "464") == 0)
ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_32
| PPC_OPCODE_440 | PPC_OPCODE_ISEL | PPC_OPCODE_RFMCI);
else if (strcmp (arg, "7400") == 0
@@ -1123,6 +1124,7 @@ PowerPC options:\n\
generate code for PowerPC 603/604\n\
-m403, -m405 generate code for PowerPC 403/405\n\
-m440 generate code for PowerPC 440\n\
+-m464 generate code for PowerPC 464\n\
-m7400, -m7410, -m7450, -m7455\n\
generate code for PowerPC 7400/7410/7450/7455\n\
-m750cl generate code for PowerPC 750cl\n"));
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 1aa6fa9..ad39ba9 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,10 @@
+2008-06-25 Peter Bergner <bergner@vnet.ibm.com>
+
+ * ppc-dis.c (powerpc_init_dialect): Handle -M464.
+ (print_ppc_disassembler_options): Likewise.
+ * ppc-opc.c (PPC464): Define.
+ (powerpc_opcodes): Add mfdcrux and mtdcrux.
+
2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure: Regenerate.
diff --git a/opcodes/ppc-dis.c b/opcodes/ppc-dis.c
index de586dc..5a9f707 100644
--- a/opcodes/ppc-dis.c
+++ b/opcodes/ppc-dis.c
@@ -85,7 +85,8 @@ powerpc_init_dialect (struct disassemble_info *info)
&& strstr (info->disassembler_options, "e300") != NULL)
dialect |= PPC_OPCODE_E300 | PPC_OPCODE_CLASSIC | PPC_OPCODE_COMMON;
else if (info->disassembler_options
- && strstr (info->disassembler_options, "440") != NULL)
+ && (strstr (info->disassembler_options, "440") != NULL
+ || strstr (info->disassembler_options, "464") != NULL))
dialect |= PPC_OPCODE_BOOKE | PPC_OPCODE_32
| PPC_OPCODE_440 | PPC_OPCODE_ISEL | PPC_OPCODE_RFMCI;
else
@@ -388,6 +389,7 @@ the -M switch:\n");
fprintf (stream, " e500|e500x2 Disassemble the e500 instructions\n");
fprintf (stream, " e500mc Disassemble the e500mc instructions\n");
fprintf (stream, " 440 Disassemble the 440 instructions\n");
+ fprintf (stream, " 464 Disassemble the 464 instructions\n");
fprintf (stream, " efs Disassemble the EFS instructions\n");
fprintf (stream, " ppcps Disassemble the PowerPC paired singles instructions\n");
fprintf (stream, " power4 Disassemble the Power4 instructions\n");
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
index b5f4111..f9c2059 100644
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
@@ -1666,6 +1666,7 @@ extract_tbr (unsigned long insn,
#define PPC403 PPC_OPCODE_403
#define PPC405 PPC403
#define PPC440 PPC_OPCODE_440
+#define PPC464 PPC440
#define PPC750 PPC
#define PPC7450 PPC
#define PPC860 PPC
@@ -3527,6 +3528,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"lhzxe", X(31,287), X_MASK, BOOKE64, {RT, RA0, RB}},
{"lhepx", X(31,287), X_MASK, E500MC, {RT, RA, RB}},
+{"mfdcrux", X(31,291), X_MASK, PPC464, {RS, RA}},
+
{"tlbie", X(31,306), XRTLRA_MASK, PPC, {RB, L}},
{"tlbi", X(31,306), XRT_MASK, POWER, {RA0, RB}},
@@ -3818,6 +3821,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"sthxe", X(31,415), X_MASK, BOOKE64, {RS, RA0, RB}},
{"sthepx", X(31,415), X_MASK, E500MC, {RS, RA, RB}},
+{"mtdcrux", X(31,419), X_MASK, PPC464, {RA, RS}},
+
{"slbie", X(31,434), XRTRA_MASK, PPC64, {RB}},
{"ecowx", X(31,438), X_MASK, PPC, {RT, RA, RB}},