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