Power4 should treat mftb as extended mfspr mnemonic
authorAlan Modra <amodra@gmail.com>
Sat, 29 Nov 2014 08:43:17 +0000 (19:13 +1030)
committerAlan Modra <amodra@gmail.com>
Sun, 30 Nov 2014 02:59:24 +0000 (13:29 +1030)
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.

gas/testsuite/ChangeLog
gas/testsuite/gas/ppc/476.d
gas/testsuite/gas/ppc/a2.d
opcodes/ChangeLog
opcodes/ppc-opc.c

index 54d756096b52841c21c2ed8818e46656cc89ceef..5903720fad0a6416df8e0f7eb5fceb9c3cd55060 100644 (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.
index 23b5d6e69c922e94b689d4a9bf0081f742815aee..e59e2e99313d1504c02a8c464fd902cd37924181 100644 (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
index 8684ed7ad76bc6f6433f2dfb0a1fef9623e5c7b6..a74340205930b2a8fb490595b52097bf18e11a17 100644 (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
index 89fabdb15f743b2f1ba4114df6f6ebc7d287f565..00bb53ad3600af712e520a42d56ade1f684c19ac 100644 (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
index 4427465221d838d8520f68e0f36c29232cdf3f76..95802b014b877ad483d8e7f4ca10d62a0a76a6dc 100644 (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}},