Browse Source

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.
gdb-7.9-branch
Alan Modra 12 years ago
parent
commit
db76a70026
  1. 5
      gas/testsuite/ChangeLog
  2. 2
      gas/testsuite/gas/ppc/476.d
  3. 4
      gas/testsuite/gas/ppc/a2.d
  4. 5
      opcodes/ChangeLog
  5. 12
      opcodes/ppc-opc.c

5
gas/testsuite/ChangeLog

@ -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.

2
gas/testsuite/gas/ppc/476.d

@ -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

4
gas/testsuite/gas/ppc/a2.d

@ -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

5
opcodes/ChangeLog

@ -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

12
opcodes/ppc-opc.c

@ -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}},

Loading…
Cancel
Save