a094f6
commit db76a70026ab100148eb274322fac01f1a1dd466
a094f6
Author: Alan Modra <amodra@gmail.com>
a094f6
Date:   Sat Nov 29 19:13:17 2014 +1030
a094f6
a094f6
    Power4 should treat mftb as extended mfspr mnemonic
a094f6
    
a094f6
    On further reading of ISA manual it appears gas should have been
a094f6
    treating mftb and mftbu as extended mnemonics for mfspr, for ISA 2.03
a094f6
    and later.
a094f6
    
a094f6
    opcodes/
a094f6
            * ppc-opc.c (powerpc_opcodes): Make mftb* generate mfspr for
a094f6
            power4 and later.
a094f6
    gas/testsuite/
a094f6
            * gas/ppc/a2.d: Update for mftb change.
a094f6
            * gas/ppc/476.d: Likewise.
a094f6
a094f6
### a/opcodes/ChangeLog
a094f6
### b/opcodes/ChangeLog
a094f6
## -1,3 +1,8 @@
a094f6
+2014-11-30  Alan Modra  <amodra@gmail.com>
a094f6
+
a094f6
+	* ppc-opc.c (powerpc_opcodes): Make mftb* generate mfspr for
a094f6
+	power4 and later.
a094f6
+
a094f6
 2014-11-28  Sandra Loosemore  <sandra@codesourcery.com>
a094f6
 
a094f6
 	* nios2-opc.c (nios2_r1_opcodes): Remove deleted attributes
a094f6
--- a/opcodes/ppc-opc.c
a094f6
+++ b/opcodes/ppc-opc.c
a094f6
@@ -4880,9 +4880,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
a094f6
 {"mfsprg5",	XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE|PPCVLE, PPCNONE, {RT}},
a094f6
 {"mfsprg6",	XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE|PPCVLE, PPCNONE, {RT}},
a094f6
 {"mfsprg7",	XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE|PPCVLE, PPCNONE, {RT}},
a094f6
-{"mftb",	XSPR(31,339,268), XSPR_MASK, BOOKE|PPCVLE, PPCNONE,	{RT}},
a094f6
-{"mftbl",	XSPR(31,339,268), XSPR_MASK, BOOKE|PPCVLE, PPCNONE,	{RT}},
a094f6
-{"mftbu",	XSPR(31,339,269), XSPR_MASK, BOOKE|PPCVLE, PPCNONE,	{RT}},
a094f6
+{"mftbu",	XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE|PPCVLE, PPCNONE, {RT}},
a094f6
+{"mftb",	X(31,339),	  X_MASK,    POWER4|BOOKE|PPCVLE, PPCNONE, {RT, TBR}},
a094f6
+{"mftbl",	XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE|PPCVLE, PPCNONE, {RT}},
a094f6
 {"mfsprg0",	XSPR(31,339,272), XSPR_MASK, PPC|PPCVLE, PPCNONE,	{RT}},
a094f6
 {"mfsprg1",	XSPR(31,339,273), XSPR_MASK, PPC|PPCVLE, PPCNONE,	{RT}},
a094f6
 {"mfsprg2",	XSPR(31,339,274), XSPR_MASK, PPC|PPCVLE, PPCNONE,	{RT}},
a094f6
@@ -5051,9 +5051,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
a094f6
 
a094f6
 {"tlbia",	X(31,370),	0xffffffff,  PPC,	TITAN,  	{0}},
a094f6
 
a094f6
-{"mftbl",	XSPR(31,371,268), XSPR_MASK, PPC,	NO371,		{RT}},
a094f6
-{"mftbu",	XSPR(31,371,269), XSPR_MASK, PPC,	NO371,		{RT}},
a094f6
-{"mftb",	X(31,371),	X_MASK,      PPC|PPCA2,	NO371,		{RT, TBR}},
a094f6
+{"mftbu",	XSPR(31,371,269), XSPR_MASK, PPC,	NO371|POWER4,	{RT}},
a094f6
+{"mftb",	X(31,371),	X_MASK,      PPC,	NO371|POWER4,	{RT, TBR}},
a094f6
+{"mftbl",	XSPR(31,371,268), XSPR_MASK, PPC,	NO371|POWER4,	{RT}},
a094f6
 
a094f6
 {"lwaux",	X(31,373),	X_MASK,      PPC64|PPCVLE, PPCNONE,	{RT, RAL, RB}},
a094f6