Power4 should treat mftb as extended mfspr mnemonic

On further reading of ISA manual it appears gas should have been
treating mftb and mftbu as extended mnemonics for mfspr, for ISA 2.03
and later.

opcodes/
	* ppc-opc.c (powerpc_opcodes): Make mftb* generate mfspr for
	power4 and later.
gas/testsuite/
	* gas/ppc/a2.d: Update for mftb change.
	* gas/ppc/476.d: Likewise.
This commit is contained in:
Alan Modra 2014-11-29 19:13:17 +10:30
parent 7b20f09964
commit db76a70026
5 changed files with 19 additions and 9 deletions

View File

@ -1,3 +1,8 @@
2014-11-30 Alan Modra <amodra@gmail.com>
* gas/ppc/a2.d: Update for mftb change.
* gas/ppc/476.d: Likewise.
2014-11-28 Sandra Loosemore <sandra@codesourcery.com>
* gas/nios2/nios2.exp: Make "movi" a list test.

View File

@ -308,7 +308,7 @@ Disassembly of section \.text:
4a8: (7e 60 00 a6|a6 00 60 7e) mfmsr r19
4ac: (7c 78 00 26|26 00 78 7c) mfocrf r3,128
4b0: (7c 60 22 a6|a6 22 60 7c) mfspr r3,128
4b4: (7c 6c 42 e6|e6 42 6c 7c) mftbl r3
4b4: (7c 6c 42 a6|a6 42 6c 7c) mftb r3
4b8: (7c 00 04 ac|ac 04 00 7c) msync
4bc: (7c 78 01 20|20 01 78 7c) mtocrf 128,r3
4c0: (7c 6f f1 20|20 f1 6f 7c) mtcr r3

View File

@ -360,8 +360,8 @@ Disassembly of section \.text:
530: (7c 70 10 26|26 10 70 7c) mfocrf r3,1
534: (7c 78 00 26|26 00 78 7c) mfocrf r3,128
538: (7d 4a 3a a6|a6 3a 4a 7d) mfspr r10,234
53c: (7d 4c 42 e6|e6 42 4c 7d) mftbl r10
540: (7d 4d 42 e6|e6 42 4d 7d) mftbu r10
53c: (7d 4c 42 a6|a6 42 4c 7d) mftb r10
540: (7d 4d 42 a6|a6 42 4d 7d) mftbu r10
544: (7c 00 51 dc|dc 51 00 7c) msgclr r10
548: (7c 00 51 9c|9c 51 00 7c) msgsnd r10
54c: (7c 60 01 20|20 01 60 7c) mtcrf 0,r3

View File

@ -1,3 +1,8 @@
2014-11-30 Alan Modra <amodra@gmail.com>
* ppc-opc.c (powerpc_opcodes): Make mftb* generate mfspr for
power4 and later.
2014-11-28 Sandra Loosemore <sandra@codesourcery.com>
* nios2-opc.c (nios2_r1_opcodes): Remove deleted attributes

View File

@ -4880,9 +4880,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE|PPCVLE, PPCNONE, {RT}},
{"mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE|PPCVLE, PPCNONE, {RT}},
{"mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE|PPCVLE, PPCNONE, {RT}},
{"mftb", XSPR(31,339,268), XSPR_MASK, BOOKE|PPCVLE, PPCNONE, {RT}},
{"mftbl", XSPR(31,339,268), XSPR_MASK, BOOKE|PPCVLE, PPCNONE, {RT}},
{"mftbu", XSPR(31,339,269), XSPR_MASK, BOOKE|PPCVLE, PPCNONE, {RT}},
{"mftbu", XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE|PPCVLE, PPCNONE, {RT}},
{"mftb", X(31,339), X_MASK, POWER4|BOOKE|PPCVLE, PPCNONE, {RT, TBR}},
{"mftbl", XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE|PPCVLE, PPCNONE, {RT}},
{"mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC|PPCVLE, PPCNONE, {RT}},
{"mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC|PPCVLE, PPCNONE, {RT}},
{"mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC|PPCVLE, PPCNONE, {RT}},
@ -5051,9 +5051,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"tlbia", X(31,370), 0xffffffff, PPC, TITAN, {0}},
{"mftbl", XSPR(31,371,268), XSPR_MASK, PPC, NO371, {RT}},
{"mftbu", XSPR(31,371,269), XSPR_MASK, PPC, NO371, {RT}},
{"mftb", X(31,371), X_MASK, PPC|PPCA2, NO371, {RT, TBR}},
{"mftbu", XSPR(31,371,269), XSPR_MASK, PPC, NO371|POWER4, {RT}},
{"mftb", X(31,371), X_MASK, PPC, NO371|POWER4, {RT, TBR}},
{"mftbl", XSPR(31,371,268), XSPR_MASK, PPC, NO371|POWER4, {RT}},
{"lwaux", X(31,373), X_MASK, PPC64|PPCVLE, PPCNONE, {RT, RAL, RB}},