Blame SOURCES/gdb-rhbz1320945-power9-14of38.patch

01917d
commit 4fff86c517abb5ba454befe0ec0f284f720dde00
01917d
Author: Peter Bergner <bergner@vnet.ibm.com>
01917d
Date:   Mon Apr 27 11:06:54 2015 -0500
01917d
01917d
    opcodes/
01917d
    
01917d
            * ppc-opc.c (DCBT_EO): New define.
01917d
            (powerpc_opcodes) <lbarx>: Enable for POWER8 and later.
01917d
            <lharx>: Likewise.
01917d
            <stbcx.>: Likewise.
01917d
            <sthcx.>: Likewise.
01917d
            <waitrsv>: Do not enable for POWER7 and later.
01917d
            <waitimpl>: Likewise.
01917d
            <dcbt>: Default to the two operand form of the instruction for all
01917d
            "old" cpus.  For "new" cpus, use the operand ordering that matches
01917d
            whether the cpu is server or embedded.
01917d
            <dcbtst>: Likewise.
01917d
    
01917d
    gas/testsuite/
01917d
    
01917d
            * gas/ppc/a2.s: Fixup test case due to dcbt/dcbtst embedded operand
01917d
            ordering change.
01917d
            * gas/ppc/a2.d: Likewise.
01917d
            * gas/ppc/476.d: Likewise.
01917d
            * gas/ppc/booke.s: Remove invalid 3 operand dcbt tests.
01917d
            * gas/ppc/booke.d: Likewise.
01917d
            * gas/ppc/power7.s: Remove lbarx, lharx, stbcx., sthcx., waitrsv
01917d
            and waitimpl tests.
01917d
            * gas/ppc/power7.d: Likewise.
01917d
01917d
### a/opcodes/ChangeLog
01917d
### b/opcodes/ChangeLog
01917d
## -1,3 +1,17 @@
01917d
+2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
01917d
+
01917d
+	* ppc-opc.c (DCBT_EO): New define.
01917d
+	(powerpc_opcodes) <lbarx>: Enable for POWER8 and later.
01917d
+	<lharx>: Likewise.
01917d
+	<stbcx.>: Likewise.
01917d
+	<sthcx.>: Likewise.
01917d
+	<waitrsv>: Do not enable for POWER7 and later.
01917d
+	<waitimpl>: Likewise.
01917d
+	<dcbt>: Default to the two operand form of the instruction for all
01917d
+	"old" cpus.  For "new" cpus, use the operand ordering that matches
01917d
+	whether the cpu is server or embedded.
01917d
+	<dcbtst>: Likewise.
01917d
+
01917d
 2015-04-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
01917d
 
01917d
 	* s390-opc.c: New instruction type VV0UU2.
01917d
--- a/opcodes/ppc-opc.c
01917d
+++ b/opcodes/ppc-opc.c
01917d
@@ -2756,6 +2756,12 @@ extract_vleil (unsigned long insn,
01917d
 #define E6500	PPC_OPCODE_E6500
01917d
 #define PPCVLE  PPC_OPCODE_VLE
01917d
 #define PPCHTM  PPC_OPCODE_HTM
01917d
+/* The list of embedded processors that use the embedded operand ordering
01917d
+   for the 3 operand dcbt and dcbtst instructions.  */
01917d
+#define DCBT_EO	(PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
01917d
+		 | PPC_OPCODE_A2 | PPC_OPCODE_VLE)
01917d
+
01917d
+
01917d
 
01917d
 /* The opcode table.
01917d
 
01917d
@@ -4463,7 +4469,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
01917d
 {"mfvrd",	X(31,51)|1,	XX1RB_MASK|1, PPCVSX2,	PPCNONE,	{RA, VS}},
01917d
 {"eratilx",	X(31,51),	X_MASK,	     PPCA2,	PPCNONE,	{ERAT_T, RA, RB}},
01917d
 
01917d
-{"lbarx",	X(31,52),	XEH_MASK,    POWER7|PPCVLE, PPCNONE,	{RT, RA0, RB, EH}},
01917d
+{"lbarx",	X(31,52),	XEH_MASK,    POWER8|PPCVLE, PPCNONE,	{RT, RA0, RB, EH}},
01917d
 
01917d
 {"ldux",	X(31,53),	X_MASK,      PPC64|PPCVLE, PPCNONE,	{RT, RAL, RB}},
01917d
  
01917d
@@ -4478,8 +4484,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
01917d
 {"andc",	XRC(31,60,0),	X_MASK,	     COM|PPCVLE, PPCNONE,	{RA, RS, RB}},
01917d
 {"andc.",	XRC(31,60,1),	X_MASK,	     COM|PPCVLE, PPCNONE,	{RA, RS, RB}},
01917d
 
01917d
-{"waitrsv",	X(31,62)|(1<<21), 0xffffffff, POWER7|E500MC|PPCA2, PPCNONE, {0}},
01917d
-{"waitimpl",	X(31,62)|(2<<21), 0xffffffff, POWER7|E500MC|PPCA2, PPCNONE, {0}},
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
  
01917d
 {"dcbstep",	XRT(31,63,0),	XRT_MASK,    E500MC|PPCA2|PPCVLE, PPCNONE, {RA0, RB}},
01917d
@@ -4543,7 +4549,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
01917d
 {"mfvrwz",	X(31,115)|1,	XX1RB_MASK|1, PPCVSX2,	PPCNONE,	{RA, VS}},
01917d
 {"mfvsrwz",	X(31,115),	XX1RB_MASK,   PPCVSX2,	PPCNONE,	{RA, XS6}},
01917d
 
01917d
-{"lharx",	X(31,116),	XEH_MASK,    POWER7|PPCVLE, PPCNONE,	{RT, RA0, RB, EH}},
01917d
+{"lharx",	X(31,116),	XEH_MASK,    POWER8|PPCVLE, PPCNONE,	{RT, RA0, RB, EH}},
01917d
 
01917d
 {"clf",		X(31,118),	XTO_MASK,    POWER,	PPCNONE,	{RA, RB}},
01917d
 
01917d
@@ -4711,9 +4717,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
01917d
 {"mtvsrwz",	X(31,243),	XX1RB_MASK,   PPCVSX2,	PPCNONE,	{XT6, RA}},
01917d
 
01917d
 {"dcbtstt",	XRT(31,246,0x10), XRT_MASK,  POWER7,	PPCNONE,	{RA0, RB}},
01917d
-{"dcbtst",	X(31,246),	X_MASK,      POWER4,	PPCNONE,	{RA0, RB, CT}},
01917d
-{"dcbtst",	X(31,246),	X_MASK,      PPC|PPCVLE, POWER4,	{CT, RA0, RB}},
01917d
- 
01917d
+{"dcbtst",	X(31,246),	X_MASK,      POWER4,	DCBT_EO,	{RA0, RB, CT}},
01917d
+{"dcbtst",	X(31,246),	X_MASK,      DCBT_EO,	PPCNONE,	{CT, RA0, RB}},
01917d
+{"dcbtst",	X(31,246),	X_MASK,      PPC,	POWER4|DCBT_EO,	{RA0, RB}},
01917d
+
01917d
 {"stbux",	X(31,247),	X_MASK,	     COM|PPCVLE, PPCNONE,	{RS, RAS, RB}},
01917d
 
01917d
 {"slliq",	XRC(31,248,0),	X_MASK,      M601,	PPCNONE,	{RA, RS, SH}},
01917d
@@ -4753,9 +4760,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
01917d
 {"lscbx.",	XRC(31,277,1),	X_MASK,      M601,	PPCNONE,	{RT, RA, RB}},
01917d
 
01917d
 {"dcbtt",	XRT(31,278,0x10), XRT_MASK,  POWER7,	PPCNONE,	{RA0, RB}},
01917d
-{"dcbt",	X(31,278),	X_MASK,      POWER4,	PPCNONE,	{RA0, RB, CT}},
01917d
-{"dcbt",	X(31,278),	X_MASK,      PPC|PPCVLE, POWER4,	{CT, RA0, RB}},
01917d
- 
01917d
+{"dcbt",	X(31,278),	X_MASK,      POWER4,	DCBT_EO,	{RA0, RB, CT}},
01917d
+{"dcbt",	X(31,278),	X_MASK,      DCBT_EO,	PPCNONE,	{CT, RA0, RB}},
01917d
+{"dcbt",	X(31,278),	X_MASK,      PPC,	POWER4|DCBT_EO,	{RA0, RB}},
01917d
+
01917d
 {"lhzx",	X(31,279),	X_MASK,      COM|PPCVLE, PPCNONE,	{RT, RA0, RB}},
01917d
 
01917d
 {"cdtbcd",	X(31,282),	XRB_MASK,    POWER6,	PPCNONE,	{RA, RS}},
01917d
@@ -5531,7 +5539,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
01917d
 {"tendall.",	XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, PPCNONE,	{0}},
01917d
 {"tend.",	XRC(31,686,1), XRTARARB_MASK, PPCHTM,	PPCNONE,	{HTM_A}},
01917d
 
01917d
-{"stbcx.",	XRC(31,694,1),	X_MASK,      POWER7,	PPCNONE,	{RS, RA0, RB}},
01917d
+{"stbcx.",	XRC(31,694,1),	X_MASK,      POWER8,	PPCNONE,	{RS, RA0, RB}},
01917d
 
01917d
 {"stfsux",	X(31,695),	X_MASK,      COM,	PPCEFS,		{FRS, RAS, RB}},
01917d
 
01917d
@@ -5561,7 +5569,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
01917d
 {"stswi",	X(31,725),	X_MASK, PPCCOM|PPCVLE,	E500|E500MC,	{RS, RA0, NB}},
01917d
 {"stsi",	X(31,725),	X_MASK,      PWRCOM,	PPCNONE,	{RS, RA0, NB}},
01917d
 
01917d
-{"sthcx.",	XRC(31,726,1),	X_MASK,      POWER7,	PPCNONE,	{RS, RA0, RB}},
01917d
+{"sthcx.",	XRC(31,726,1),	X_MASK,      POWER8,	PPCNONE,	{RS, RA0, RB}},
01917d
 
01917d
 {"stfdx",	X(31,727),	X_MASK,      COM,	PPCEFS,		{FRS, RA0, RB}},
01917d