diff options
author | Peter Bergner <bergner@vnet.ibm.com> | 2015-05-14 20:57:50 -0500 |
---|---|---|
committer | Peter Bergner <bergner@vnet.ibm.com> | 2015-05-14 21:02:50 -0500 |
commit | 4bc0608a8b693f033555aa5705fdd5fc44cb9a9a (patch) | |
tree | fcf2031635c4f9a600be59264ecbccae0010bd83 /opcodes/ppc-opc.c | |
parent | 49a84e1373168f743fd6191035043389f0198a14 (diff) | |
download | gdb-4bc0608a8b693f033555aa5705fdd5fc44cb9a9a.zip gdb-4bc0608a8b693f033555aa5705fdd5fc44cb9a9a.tar.gz gdb-4bc0608a8b693f033555aa5705fdd5fc44cb9a9a.tar.bz2 |
Fix some PPC assembler errors.
Remove the wait instructions for server processors, since they were never
implemented. Also add the extra operands added to the tlbie and slbia
instructions with ISA 2.06 and ISA 2.05 respectively.
binutils/
* MAINTAINERS: Add myself as PPC maintainer.
opcodes/
* ppc-opc.c (IH) New define.
(powerpc_opcodes) <wait>: Do not enable for POWER7.
<tlbie>: Add RS operand for POWER7.
<slbia>: Add IH operand for POWER6.
gas/testsuite/
* gas/ppc/power4.d: Add a slbia test.
* gas/ppc/power4.s: Likewise.
* gas/ppc/power6.d: Add slbia and tlbie tests.
* gas/ppc/power6.s: Likewise.
* gas/ppc/power7.d: Remove wait tests. Add a tlbie test.
* gas/ppc/power7.s: Likewise.
Diffstat (limited to 'opcodes/ppc-opc.c')
-rw-r--r-- | opcodes/ppc-opc.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c index afd8382..57a0973 100644 --- a/opcodes/ppc-opc.c +++ b/opcodes/ppc-opc.c @@ -866,6 +866,9 @@ const struct powerpc_operand powerpc_operands[] = #define ERAT_T UIM + 1 { 0x7, 21, NULL, NULL, 0 }, + +#define IH ERAT_T + 1 + { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, }; const unsigned int num_powerpc_operands = (sizeof (powerpc_operands) @@ -4486,7 +4489,7 @@ const struct powerpc_opcode powerpc_opcodes[] = { {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, PPCNONE, {0}}, {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, PPCNONE, {0}}, -{"wait", X(31,62), XWC_MASK, POWER7|E500MC|PPCA2|PPCVLE, PPCNONE, {WC}}, +{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|PPCVLE, PPCNONE, {WC}}, {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2|PPCVLE, PPCNONE, {RA0, RB}}, @@ -4780,7 +4783,8 @@ const struct powerpc_opcode powerpc_opcodes[] = { {"mfbhrbe", X(31,302), X_MASK, POWER8, PPCNONE, {RT, BHRBE}}, -{"tlbie", X(31,306), XRTLRA_MASK, PPC, TITAN, {RB, L}}, +{"tlbie", X(31,306), XRA_MASK, POWER7, TITAN, {RB, RS}}, +{"tlbie", X(31,306), XRTLRA_MASK, PPC, POWER7|TITAN, {RB, L}}, {"tlbi", X(31,306), XRT_MASK, POWER, PPCNONE, {RA0, RB}}, {"eciwx", X(31,310), X_MASK, PPC, TITAN, {RT, RA0, RB}}, @@ -5372,7 +5376,8 @@ const struct powerpc_opcode powerpc_opcodes[] = { {"icbtlse", X(31,494), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}}, -{"slbia", X(31,498), 0xffffffff, PPC64, PPCNONE, {0}}, +{"slbia", X(31,498), 0xff1fffff, POWER6, PPCNONE, {IH}}, +{"slbia", X(31,498), 0xffffffff, PPC64, POWER6, {0}}, {"cli", X(31,502), XRB_MASK, POWER, PPCNONE, {RT, RA}}, |