From 9622b051cf36414e121c0c2e63c099e588801e0e Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 7 Jun 2006 05:23:59 +0000 Subject: [PATCH] include/opcode/ * ppc.h (PPC_OPCODE_POWER6): Define. Adjust whitespace. gas/ * config/tc-ppc.c (parse_cpu): Handle "-mpower6". (md_show_usage): Document it. (ppc_setup_opcodes): Test power6 opcode flag bits. * doc/c-ppc.texi (PowerPC-Opts): Document "-mpower6". opcodes/ * ppc-dis.c (powerpc_dialect): Handle power6 option. (print_ppc_disassembler_options): Mention power6. --- gas/ChangeLog | 8 ++++++++ gas/config/tc-ppc.c | 14 ++++++++++++-- gas/doc/c-ppc.texi | 5 ++++- include/opcode/ChangeLog | 6 ++++++ include/opcode/ppc.h | 10 +++++++--- opcodes/ChangeLog | 7 +++++++ opcodes/ppc-dis.c | 7 ++++++- 7 files changed, 50 insertions(+), 7 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index f608c7b3d0..2690c5b9a9 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2006-06-06 Ben Elliston + Anton Blanchard + + * config/tc-ppc.c (parse_cpu): Handle "-mpower6". + (md_show_usage): Document it. + (ppc_setup_opcodes): Test power6 opcode flag bits. + * doc/c-ppc.texi (PowerPC-Opts): Document "-mpower6". + 2006-06-06 Thiemo Seufer Chao-ying Fu diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 3a7552bf95..8b59f3fa4b 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -1,6 +1,6 @@ /* tc-ppc.c -- Assemble for the PowerPC or POWER (RS/6000) Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005 Free Software Foundation, Inc. + 2004, 2005, 2006 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support. This file is part of GAS, the GNU Assembler. @@ -917,6 +917,12 @@ parse_cpu (const char *arg) | PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5); } + else if (strcmp (arg, "power6") == 0) + { + ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC + | PPC_OPCODE_64 | PPC_OPCODE_POWER4 + | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6); + } /* -mcom means assemble for the common intersection between Power and PowerPC. At present, we just allow the union, rather than the intersection. */ @@ -1112,6 +1118,7 @@ PowerPC options:\n\ -mbooke, mbooke32 generate code for 32-bit PowerPC BookE\n\ -mpower4 generate code for Power4 architecture\n\ -mpower5 generate code for Power5 architecture\n\ +-mpower6 generate code for Power6 architecture\n\ -mcom generate code Power/PowerPC common instructions\n\ -many generate code for any architecture (PWR/PWRX/PPC)\n")); fprintf (stream, _("\ @@ -1270,7 +1277,10 @@ ppc_setup_opcodes (void) == (ppc_cpu & PPC_OPCODE_POWER4))) && ((op->flags & PPC_OPCODE_POWER5) == 0 || ((op->flags & PPC_OPCODE_POWER5) - == (ppc_cpu & PPC_OPCODE_POWER5)))) + == (ppc_cpu & PPC_OPCODE_POWER5))) + && ((op->flags & PPC_OPCODE_POWER6) == 0 + || ((op->flags & PPC_OPCODE_POWER6) + == (ppc_cpu & PPC_OPCODE_POWER6)))) { const char *retval; diff --git a/gas/doc/c-ppc.texi b/gas/doc/c-ppc.texi index 4c9c096c05..08b2271d12 100644 --- a/gas/doc/c-ppc.texi +++ b/gas/doc/c-ppc.texi @@ -1,4 +1,4 @@ -@c Copyright 2001, 2002, 2003, 2005 +@c Copyright 2001, 2002, 2003, 2005, 2006 @c Free Software Foundation, Inc. @c This is part of the GAS manual. @c For copying conditions, see the file as.texinfo. @@ -79,6 +79,9 @@ Generate code for Power4 architecture. @item -mpower5 Generate code for Power5 architecture. +@item -mpower6 +Generate code for Power6 architecture. + @item -mcom Generate code Power/PowerPC common instructions. diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index d79816d039..ab1793efd5 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,9 @@ +2006-06-06 Ben Elliston + Anton Blanchard + + * ppc.h (PPC_OPCODE_POWER6): Define. + Adjust whitespace. + 2006-06-05 Thiemo Seufer * mips.h: Improve description of MT flags. diff --git a/include/opcode/ppc.h b/include/opcode/ppc.h index f662630861..fc4d41f9f4 100644 --- a/include/opcode/ppc.h +++ b/include/opcode/ppc.h @@ -1,5 +1,5 @@ /* ppc.h -- Header file for PowerPC opcode table - Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005 + Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support @@ -135,10 +135,14 @@ extern const int powerpc_num_opcodes; #define PPC_OPCODE_RFMCI 0x800000 /* Opcode is only supported by Power5 architecture. */ -#define PPC_OPCODE_POWER5 0x1000000 +#define PPC_OPCODE_POWER5 0x1000000 /* Opcode is supported by PowerPC e300 family. */ -#define PPC_OPCODE_E300 0x2000000 +#define PPC_OPCODE_E300 0x2000000 + +/* Opcode is only supported by Power6 architecture. */ +#define PPC_OPCODE_POWER6 0x4000000 + /* A macro to extract the major opcode from an instruction. */ #define PPC_OP(i) (((i) >> 26) & 0x3f) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index b167b61b01..44cf4a4067 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,10 @@ +2006-06-06 Ben Elliston + Anton Blanchard + Peter Bergner + + * ppc-dis.c (powerpc_dialect): Handle power6 option. + (print_ppc_disassembler_options): Mention power6. + 2006-06-06 Thiemo Seufer Chao-ying Fu diff --git a/opcodes/ppc-dis.c b/opcodes/ppc-dis.c index 35875d1ac3..8b3996a147 100644 --- a/opcodes/ppc-dis.c +++ b/opcodes/ppc-dis.c @@ -1,5 +1,5 @@ /* ppc-dis.c -- Disassemble PowerPC instructions - Copyright 1994, 1995, 2000, 2001, 2002, 2003, 2004, 2005 + Copyright 1994, 1995, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support @@ -73,6 +73,10 @@ powerpc_dialect (struct disassemble_info *info) && strstr (info->disassembler_options, "power5") != NULL) dialect |= PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5; + if (info->disassembler_options + && strstr (info->disassembler_options, "power6") != NULL) + dialect |= PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_ALTIVEC; + if (info->disassembler_options && strstr (info->disassembler_options, "any") != NULL) dialect |= PPC_OPCODE_ANY; @@ -306,6 +310,7 @@ the -M switch:\n"); fprintf (stream, " efs Disassemble the EFS instructions\n"); fprintf (stream, " power4 Disassemble the Power4 instructions\n"); fprintf (stream, " power5 Disassemble the Power5 instructions\n"); + fprintf (stream, " power6 Disassemble the Power6 instructions\n"); fprintf (stream, " 32 Do not disassemble 64-bit instructions\n"); fprintf (stream, " 64 Allow disassembly of 64-bit instructions\n"); } -- 2.34.1