|
|
2c2fa1 |
commit 4bc0608a8b693f033555aa5705fdd5fc44cb9a9a
|
|
|
2c2fa1 |
Author: Peter Bergner <bergner@vnet.ibm.com>
|
|
|
2c2fa1 |
Date: Thu May 14 20:57:50 2015 -0500
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
Fix some PPC assembler errors.
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
Remove the wait instructions for server processors, since they were never
|
|
|
2c2fa1 |
implemented. Also add the extra operands added to the tlbie and slbia
|
|
|
2c2fa1 |
instructions with ISA 2.06 and ISA 2.05 respectively.
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
binutils/
|
|
|
2c2fa1 |
* MAINTAINERS: Add myself as PPC maintainer.
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
opcodes/
|
|
|
2c2fa1 |
* ppc-opc.c (IH) New define.
|
|
|
2c2fa1 |
(powerpc_opcodes) <wait>: Do not enable for POWER7.
|
|
|
2c2fa1 |
<tlbie>: Add RS operand for POWER7.
|
|
|
2c2fa1 |
<slbia>: Add IH operand for POWER6.
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
gas/testsuite/
|
|
|
2c2fa1 |
* gas/ppc/power4.d: Add a slbia test.
|
|
|
2c2fa1 |
* gas/ppc/power4.s: Likewise.
|
|
|
2c2fa1 |
* gas/ppc/power6.d: Add slbia and tlbie tests.
|
|
|
2c2fa1 |
* gas/ppc/power6.s: Likewise.
|
|
|
2c2fa1 |
* gas/ppc/power7.d: Remove wait tests. Add a tlbie test.
|
|
|
2c2fa1 |
* gas/ppc/power7.s: Likewise.
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
### a/opcodes/ChangeLog
|
|
|
2c2fa1 |
### b/opcodes/ChangeLog
|
|
|
2c2fa1 |
## -1,3 +1,10 @@
|
|
|
2c2fa1 |
+2015-05-14 Peter Bergner <bergner@vnet.ibm.com>
|
|
|
2c2fa1 |
+
|
|
|
2c2fa1 |
+ * ppc-opc.c (IH) New define.
|
|
|
2c2fa1 |
+ (powerpc_opcodes) <wait>: Do not enable for POWER7.
|
|
|
2c2fa1 |
+ <tlbie>: Add RS operand for POWER7.
|
|
|
2c2fa1 |
+ <slbia>: Add IH operand for POWER6.
|
|
|
2c2fa1 |
+
|
|
|
2c2fa1 |
2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
* opcodes/i386-opc.tbl (call): Remove Disp16|Disp32 from 64-bit
|
|
|
2c2fa1 |
--- a/opcodes/ppc-opc.c
|
|
|
2c2fa1 |
+++ b/opcodes/ppc-opc.c
|
|
|
2c2fa1 |
@@ -866,6 +866,9 @@ const struct powerpc_operand powerpc_operands[] =
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
#define ERAT_T UIM + 1
|
|
|
2c2fa1 |
{ 0x7, 21, NULL, NULL, 0 },
|
|
|
2c2fa1 |
+
|
|
|
2c2fa1 |
+#define IH ERAT_T + 1
|
|
|
2c2fa1 |
+ { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
|
|
|
2c2fa1 |
};
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
|
|
|
2c2fa1 |
@@ -4486,7 +4489,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
{"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, PPCNONE, {0}},
|
|
|
2c2fa1 |
{"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, PPCNONE, {0}},
|
|
|
2c2fa1 |
-{"wait", X(31,62), XWC_MASK, POWER7|E500MC|PPCA2|PPCVLE, PPCNONE, {WC}},
|
|
|
2c2fa1 |
+{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|PPCVLE, PPCNONE, {WC}},
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
{"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2|PPCVLE, PPCNONE, {RA0, RB}},
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
@@ -4780,7 +4783,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
{"mfbhrbe", X(31,302), X_MASK, POWER8, PPCNONE, {RT, BHRBE}},
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
-{"tlbie", X(31,306), XRTLRA_MASK, PPC, TITAN, {RB, L}},
|
|
|
2c2fa1 |
+{"tlbie", X(31,306), XRA_MASK, POWER7, TITAN, {RB, RS}},
|
|
|
2c2fa1 |
+{"tlbie", X(31,306), XRTLRA_MASK, PPC, POWER7|TITAN, {RB, L}},
|
|
|
2c2fa1 |
{"tlbi", X(31,306), XRT_MASK, POWER, PPCNONE, {RA0, RB}},
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
{"eciwx", X(31,310), X_MASK, PPC, TITAN, {RT, RA0, RB}},
|
|
|
2c2fa1 |
@@ -5372,7 +5376,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
{"icbtlse", X(31,494), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
-{"slbia", X(31,498), 0xffffffff, PPC64, PPCNONE, {0}},
|
|
|
2c2fa1 |
+{"slbia", X(31,498), 0xff1fffff, POWER6, PPCNONE, {IH}},
|
|
|
2c2fa1 |
+{"slbia", X(31,498), 0xffffffff, PPC64, POWER6, {0}},
|
|
|
2c2fa1 |
|
|
|
2c2fa1 |
{"cli", X(31,502), XRB_MASK, POWER, PPCNONE, {RT, RA}},
|
|
|
2c2fa1 |
|