From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 84033 invoked by alias); 10 Apr 2017 22:18:12 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 84014 invoked by uid 89); 10 Apr 2017 22:18:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=ppc_opcode_any, PPC_OPCODE_ANY, 860 X-HELO: mail-pg0-f48.google.com Received: from mail-pg0-f48.google.com (HELO mail-pg0-f48.google.com) (74.125.83.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 10 Apr 2017 22:18:09 +0000 Received: by mail-pg0-f48.google.com with SMTP id g2so110941154pge.3 for ; Mon, 10 Apr 2017 15:18:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:user-agent; bh=4sI9gEMCcoHVrw4OW42EvmhTMuaBNv8TQ4lYpiKAiQ0=; b=YgpU1aqdBveht1gUI4U5k/gyQrMcq04OkROAlRVlQIqoCFpktlxdoUvjARxdEDyfQB 3L9cqvsKZvwl16dYDoNtsbXhL3gIQyxFEsLuyZcxzBvleaJ4z0DrFwLetBMd/BcwG3rL A+1hInLj5mgGbEnZITtmxHdlD3cXWxtuUQQTcChIk5dLom4khEiOoUEOIpWgDKEYIgo+ x0olJA8TN/pxSeIl/yS/IMS1E2hoYbRJpx5QuTn3jjmJVy8TntJK3laozy6egpoxaB5P AwldzH3IMpkioKRhlt0kjMbEmNhoM1i0j3Ip3mbn0YZ0pIHNiLpdvTfNYdLaoq9mCBaI edDQ== X-Gm-Message-State: AN3rC/6wY3zTgFVQSoCfghcaaYX1mkA8E1XYVDFr1x/2zGttlZ4I2H0tA9GumHWB4I2WVA== X-Received: by 10.98.211.90 with SMTP id q87mr17886504pfg.97.1491862688070; Mon, 10 Apr 2017 15:18:08 -0700 (PDT) Received: from bubble.grove.modra.org (CPE-58-160-71-80.tyqh2.lon.bigpond.net.au. [58.160.71.80]) by smtp.gmail.com with ESMTPSA id c195sm26436594pfb.60.2017.04.10.15.18.06 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 10 Apr 2017 15:18:07 -0700 (PDT) Received: by bubble.grove.modra.org (Postfix, from userid 1000) id 08B93C181A; Tue, 11 Apr 2017 07:48:04 +0930 (ACST) Date: Mon, 10 Apr 2017 22:18:00 -0000 From: Alan Modra To: binutils@sourceware.org Subject: Reorder PPC_OPCODE_* and set PPC_OPCODE_TMR for e6500 Message-ID: <20170410221803.GD24006@bubble.grove.modra.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) X-IsSubscribed: yes X-SW-Source: 2017-04/txt/msg00110.txt.bz2 PPC_OPCODE_* renumbered to fill the gaps left by previous patches, and reordered chronologically just because. I kept PPC_OPCODE_TMR because presumably it might be used in future APUinfo for e6500. include/ * opcode/ppc.h (PPC_OPCODE_*): Renumber and order chronologically. (PPC_OPCODE_SPE): Comment on this and other bits used for APUinfo. opcodes/ * ppc-dis.c (ppc_opts): Formatting. Set PPC_OPCODE_TMR for e6500. * ppc-opc.c (powerpc_opcodes ): Remove now unnecessary E6500. diff --git a/include/ChangeLog b/include/ChangeLog index aa2d317..b0e30ab 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -3,6 +3,8 @@ * opcode/ppc.h (PPC_OPCODE_ALTIVEC2): Delete. (PPC_OPCODE_VSX3): Delete. (PPC_OPCODE_HTM): Delete. + (PPC_OPCODE_*): Renumber and order chronologically. + (PPC_OPCODE_SPE): Comment on this and other bits used for APUinfo. 2017-04-06 Pip Cet diff --git a/include/opcode/ppc.h b/include/opcode/ppc.h index 83392e8..cec0e10 100644 --- a/include/opcode/ppc.h +++ b/include/opcode/ppc.h @@ -82,24 +82,24 @@ extern const int vle_num_opcodes; /* Opcode is defined for the POWER2 (Rios 2) architecture. */ #define PPC_OPCODE_POWER2 0x4ull +/* Opcode is only defined on 64 bit architectures. */ +#define PPC_OPCODE_64 0x8ull + /* Opcode is supported by the Motorola PowerPC 601 processor. The 601 is assumed to support all PowerPC (PPC_OPCODE_PPC) instructions, but it also supports many additional POWER instructions. */ -#define PPC_OPCODE_601 0x8ull +#define PPC_OPCODE_601 0x10ull /* Opcode is supported in both the Power and PowerPC architectures (ie, compiler's -mcpu=common or assembler's -mcom). More than just the intersection of PPC_OPCODE_PPC with the union of PPC_OPCODE_POWER and PPC_OPCODE_POWER2 because many instructions changed mnemonics between POWER and POWERPC. */ -#define PPC_OPCODE_COMMON 0x10ull +#define PPC_OPCODE_COMMON 0x20ull /* Opcode is supported for any Power or PowerPC platform (this is for the assembler's -many option, and it eliminates duplicates). */ -#define PPC_OPCODE_ANY 0x20ull - -/* Opcode is only defined on 64 bit architectures. */ -#define PPC_OPCODE_64 0x40ull +#define PPC_OPCODE_ANY 0x40ull /* Opcode is supported as part of the 64-bit bridge. */ #define PPC_OPCODE_64_BRIDGE 0x80ull @@ -113,104 +113,107 @@ extern const int vle_num_opcodes; /* Opcode is supported by PowerPC BookE processor. */ #define PPC_OPCODE_BOOKE 0x400ull -/* Opcode is supported by PowerPC 440 processor. */ -#define PPC_OPCODE_440 0x800ull - /* Opcode is only supported by Power4 architecture. */ -#define PPC_OPCODE_POWER4 0x1000ull +#define PPC_OPCODE_POWER4 0x800ull -/* Opcode is only supported by Power7 architecture. */ -#define PPC_OPCODE_POWER7 0x2000ull - -/* Opcode is only supported by e500x2 Core. */ -#define PPC_OPCODE_SPE 0x4000ull +/* Opcode is only supported by e500x2 Core. + This bit, PPC_OPCODE_EFS, PPC_OPCODE_VLE, and all those with APU in + their comment mark opcodes so that when those instructions are used + an APUinfo entry can be generated. */ +#define PPC_OPCODE_SPE 0x1000ull -/* Opcode is supported by e500x2 Integer select APU. */ -#define PPC_OPCODE_ISEL 0x8000ull +/* Opcode is supported by Integer select APU. */ +#define PPC_OPCODE_ISEL 0x2000ull /* Opcode is an e500 SPE floating point instruction. */ -#define PPC_OPCODE_EFS 0x10000ull +#define PPC_OPCODE_EFS 0x4000ull /* Opcode is supported by branch locking APU. */ -#define PPC_OPCODE_BRLOCK 0x20000ull +#define PPC_OPCODE_BRLOCK 0x8000ull /* Opcode is supported by performance monitor APU. */ -#define PPC_OPCODE_PMR 0x40000ull +#define PPC_OPCODE_PMR 0x10000ull /* Opcode is supported by cache locking APU. */ -#define PPC_OPCODE_CACHELCK 0x80000ull +#define PPC_OPCODE_CACHELCK 0x20000ull /* Opcode is supported by machine check APU. */ -#define PPC_OPCODE_RFMCI 0x100000ull +#define PPC_OPCODE_RFMCI 0x40000ull + +/* Opcode is supported by PowerPC 440 processor. */ +#define PPC_OPCODE_440 0x80000ull /* Opcode is only supported by Power5 architecture. */ -#define PPC_OPCODE_POWER5 0x200000ull +#define PPC_OPCODE_POWER5 0x100000ull /* Opcode is supported by PowerPC e300 family. */ -#define PPC_OPCODE_E300 0x400000ull +#define PPC_OPCODE_E300 0x200000ull /* Opcode is only supported by Power6 architecture. */ -#define PPC_OPCODE_POWER6 0x800000ull +#define PPC_OPCODE_POWER6 0x400000ull /* Opcode is only supported by PowerPC Cell family. */ -#define PPC_OPCODE_CELL 0x1000000ull +#define PPC_OPCODE_CELL 0x800000ull /* Opcode is supported by CPUs with paired singles support. */ -#define PPC_OPCODE_PPCPS 0x2000000ull +#define PPC_OPCODE_PPCPS 0x1000000ull /* Opcode is supported by Power E500MC */ -#define PPC_OPCODE_E500MC 0x4000000ull +#define PPC_OPCODE_E500MC 0x2000000ull /* Opcode is supported by PowerPC 405 processor. */ -#define PPC_OPCODE_405 0x8000000ull +#define PPC_OPCODE_405 0x4000000ull /* Opcode is supported by Vector-Scalar (VSX) Unit */ -#define PPC_OPCODE_VSX 0x10000000ull +#define PPC_OPCODE_VSX 0x8000000ull + +/* Opcode is only supported by Power7 architecture. */ +#define PPC_OPCODE_POWER7 0x10000000ull /* Opcode is supported by A2. */ -#define PPC_OPCODE_A2 0x20000000ull +#define PPC_OPCODE_A2 0x20000000ull /* Opcode is supported by PowerPC 476 processor. */ #define PPC_OPCODE_476 0x40000000ull /* Opcode is supported by AppliedMicro Titan core */ -#define PPC_OPCODE_TITAN 0x80000000ull +#define PPC_OPCODE_TITAN 0x80000000ull /* Opcode which is supported by the e500 family */ -#define PPC_OPCODE_E500 0x100000000ull +#define PPC_OPCODE_E500 0x100000000ull /* Opcode is supported by Power E6500 */ -#define PPC_OPCODE_E6500 0x400000000ull +#define PPC_OPCODE_E6500 0x200000000ull /* Opcode is supported by Thread management APU */ -#define PPC_OPCODE_TMR 0x800000000ull +#define PPC_OPCODE_TMR 0x400000000ull /* Opcode which is supported by the VLE extension. */ -#define PPC_OPCODE_VLE 0x1000000000ull +#define PPC_OPCODE_VLE 0x800000000ull /* Opcode is only supported by Power8 architecture. */ -#define PPC_OPCODE_POWER8 0x2000000000ull +#define PPC_OPCODE_POWER8 0x1000000000ull /* Opcode is supported by ppc750cl. */ -#define PPC_OPCODE_750 0x4000000000ull +#define PPC_OPCODE_750 0x2000000000ull /* Opcode is supported by ppc7450. */ -#define PPC_OPCODE_7450 0x8000000000ull +#define PPC_OPCODE_7450 0x4000000000ull /* Opcode is supported by ppc821/850/860. */ -#define PPC_OPCODE_860 0x10000000000ull +#define PPC_OPCODE_860 0x8000000000ull /* Opcode is only supported by Power9 architecture. */ -#define PPC_OPCODE_POWER9 0x20000000000ull +#define PPC_OPCODE_POWER9 0x10000000000ull /* Opcode is supported by e200z4. */ -#define PPC_OPCODE_E200Z4 0x80000000000ull +#define PPC_OPCODE_E200Z4 0x20000000000ull /* Disassemble to instructions matching later in the opcode table with fewer "mask" bits set rather than the earlist match. Fewer "mask" bits set imply a more general form of the opcode, in fact the underlying machine instruction. */ -#define PPC_OPCODE_RAW 0x100000000000ull +#define PPC_OPCODE_RAW 0x40000000000ull /* 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 7d501be..1a15671 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,12 +1,14 @@ 2017-04-11 Alan Modra * ppc-dis.c (ppc_opts): Remove PPC_OPCODE_ALTIVEC2, - PPC_OPCODE_VSX3, PPC_OPCODE_HTM and "htm". + PPC_OPCODE_VSX3, PPC_OPCODE_HTM and "htm". Formatting. Set + PPC_OPCODE_TMR for e6500. * ppc-opc.c (PPCVEC2): Define as PPC_OPCODE_POWER8|PPC_OPCODE_E6500. (PPCVEC3): Define as PPC_OPCODE_POWER9. (PPCVSX2): Define as PPC_OPCODE_POWER8. (PPCVSX3): Define as PPC_OPCODE_POWER9. (PPCHTM): Define as PPC_OPCODE_POWER8. + (powerpc_opcodes ): Remove now unnecessary E6500. 2017-04-10 Alan Modra diff --git a/opcodes/ppc-dis.c b/opcodes/ppc-dis.c index bb0bc30..3c9cbaf 100644 --- a/opcodes/ppc-dis.c +++ b/opcodes/ppc-dis.c @@ -141,13 +141,12 @@ struct ppc_mopt ppc_opts[] = { { "e5500", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI | PPC_OPCODE_E500MC | PPC_OPCODE_64 | PPC_OPCODE_POWER4 - | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 - | PPC_OPCODE_POWER7), + | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7), 0 }, { "e6500", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI | PPC_OPCODE_E500MC | PPC_OPCODE_64 | PPC_OPCODE_ALTIVEC - | PPC_OPCODE_E6500 | PPC_OPCODE_POWER4 + | PPC_OPCODE_E6500 | PPC_OPCODE_TMR | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7), 0 }, { "e500x2", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_SPE diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c index 430104e..55e6bed 100644 --- a/opcodes/ppc-opc.c +++ b/opcodes/ppc-opc.c @@ -5312,7 +5312,7 @@ const struct powerpc_opcode powerpc_opcodes[] = { {"lxvdsx", X(31,332), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}}, {"mfpmr", X(31,334), X_MASK, PPCPMR|PPCE300, 0, {RT, PMR}}, -{"mftmr", X(31,366), X_MASK, PPCTMR|E6500, 0, {RT, TMR}}, +{"mftmr", X(31,366), X_MASK, PPCTMR, 0, {RT, TMR}}, {"slbsync", X(31,338), 0xffffffff, POWER9, 0, {0}}, @@ -5668,7 +5668,7 @@ const struct powerpc_opcode powerpc_opcodes[] = { {"divwu.", XO(31,459,0,1), XO_MASK, PPC, 0, {RT, RA, RB}}, {"mtpmr", X(31,462), X_MASK, PPCPMR|PPCE300, 0, {PMR, RS}}, -{"mttmr", X(31,494), X_MASK, PPCTMR|E6500, 0, {TMR, RS}}, +{"mttmr", X(31,494), X_MASK, PPCTMR, 0, {TMR, RS}}, {"slbieg", X(31,466), XRA_MASK, POWER9, 0, {RS, RB}}, -- Alan Modra Australia Development Lab, IBM