Re-add support for lbarx, lharx, stbcx. and sthcx. insns back to the E6500 cpu.
authorPeter Bergner <bergner@vnet.ibm.com>
Fri, 3 Jun 2016 23:38:02 +0000 (18:38 -0500)
committerPeter Bergner <bergner@vnet.ibm.com>
Fri, 3 Jun 2016 23:38:02 +0000 (18:38 -0500)
opcodes/
PR binutils/20196
* ppc-opc.c (powerpc_opcodes <lbarx, lharx, stbcx., sthcx.>): Enable
opcodes for E6500.

gas/
PR binutils/20196
* gas/testsuite/gas/ppc/e6500.s <lbarx, lharx, lwarx, ldarx,
stbcx., sthcx., stwcx., stdcx.>: Add tests.
* gas/testsuite/gas/ppc/e6500.d: Likewise.
* gas/testsuite/gas/ppc/power8.s: Likewise.
* gas/testsuite/gas/ppc/power8.d: Likewise.
* gas/testsuite/gas/ppc/power4.s <lwarx, ldarx, stwcx.,
stdcx.>: Add tests.
* gas/testsuite/gas/ppc/power4.d: Likewise.

gas/ChangeLog
gas/testsuite/gas/ppc/e6500.d
gas/testsuite/gas/ppc/e6500.s
gas/testsuite/gas/ppc/power4.d
gas/testsuite/gas/ppc/power4.s
gas/testsuite/gas/ppc/power8.d
gas/testsuite/gas/ppc/power8.s
opcodes/ChangeLog
opcodes/ppc-opc.c

index 50b17fa21c328082f9cd4c58a082348947292c93..8e4d96789408a5b8703a612d6aa7aaf499525e6c 100644 (file)
@@ -1,3 +1,15 @@
+2016-06-03  Peter Bergner <bergner@vnet.ibm.com>
+
+       PR binutils/20196
+       * gas/testsuite/gas/ppc/e6500.s <lbarx, lharx, lwarx, ldarx,
+       stbcx., sthcx., stwcx., stdcx.>: Add tests.
+       * gas/testsuite/gas/ppc/e6500.d: Likewise.
+       * gas/testsuite/gas/ppc/power8.s: Likewise.
+       * gas/testsuite/gas/ppc/power8.d: Likewise.
+       * gas/testsuite/gas/ppc/power4.s <lwarx, ldarx, stwcx.,
+       stdcx.>: Add tests.
+       * gas/testsuite/gas/ppc/power4.d: Likewise.
+
 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR binutis/18386
index c8d8f57e34a5d73ee73ad68ff76d9ade17a597d1..3ed94dcbac945d4da1ffad2c665618d63837e832 100644 (file)
@@ -73,3 +73,20 @@ Disassembly of section \.text:
   fc:  (7c 43 09 8d|8d 09 43 7c)       icblq.  2,r3,r1
  100:  (7c 10 02 dc|dc 02 10 7c)       mftmr   r0,16
  104:  (7c 10 03 dc|dc 03 10 7c)       mttmr   16,r0
+.*:    (7e 80 38 68|68 38 80 7e)       lbarx   r20,0,r7
+.*:    (7e 81 38 68|68 38 81 7e)       lbarx   r20,r1,r7
+.*:    (7e a0 40 e8|e8 40 a0 7e)       lharx   r21,0,r8
+.*:    (7e a1 40 e8|e8 40 a1 7e)       lharx   r21,r1,r8
+.*:    (7e c0 48 28|28 48 c0 7e)       lwarx   r22,0,r9
+.*:    (7e c1 48 28|28 48 c1 7e)       lwarx   r22,r1,r9
+.*:    (7e e0 50 a8|a8 50 e0 7e)       ldarx   r23,0,r10
+.*:    (7e e1 50 a8|a8 50 e1 7e)       ldarx   r23,r1,r10
+.*:    (7d 40 3d 6d|6d 3d 40 7d)       stbcx\.  r10,0,r7
+.*:    (7d 41 3d 6d|6d 3d 41 7d)       stbcx\.  r10,r1,r7
+.*:    (7d 60 45 ad|ad 45 60 7d)       sthcx\.  r11,0,r8
+.*:    (7d 61 45 ad|ad 45 61 7d)       sthcx\.  r11,r1,r8
+.*:    (7d 80 49 2d|2d 49 80 7d)       stwcx\.  r12,0,r9
+.*:    (7d 81 49 2d|2d 49 81 7d)       stwcx\.  r12,r1,r9
+.*:    (7d a0 51 ad|ad 51 a0 7d)       stdcx\.  r13,0,r10
+.*:    (7d a1 51 ad|ad 51 a1 7d)       stdcx\.  r13,r1,r10
+#pass
index 2167cc60b65152a17d2ea71ba4aacd264d8be665..d4b7f84d438cae89f5921cf76fa602de6a454b7e 100644 (file)
@@ -67,3 +67,19 @@ start:
        icblq.  2,3,1
        mftmr   0,16
        mttmr   16,0
+       lbarx   20,0,7
+       lbarx   20,1,7
+       lharx   21,0,8
+       lharx   21,1,8
+       lwarx   22,0,9
+       lwarx   22,1,9
+       ldarx   23,0,10
+       ldarx   23,1,10
+       stbcx.  10,0,7
+       stbcx.  10,1,7
+       sthcx.  11,0,8
+       sthcx.  11,1,8
+       stwcx.  12,0,9
+       stwcx.  12,1,9
+       stdcx.  13,0,10
+       stdcx.  13,1,10
index 8a09c0563bb1a6995d18533da265c521eb198de0..cb487a7d02c2a488c9dfbe0c54c83a6696340fc6 100644 (file)
@@ -10,7 +10,7 @@ start address 0x0+
 
 Sections:
 Idx Name +Size +VMA +LMA +File off +Algn
- +0 \.text +0+e8 +0+ +0+ +.*
+ +0 \.text +0+108 +0+ +0+ +.*
  +CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
  +1 \.data +0+20 +0+ +0+ +.*
  +CONTENTS, ALLOC, LOAD, DATA
@@ -106,3 +106,12 @@ Disassembly of section \.text:
 .*:    (7c 20 04 ac|ac 04 20 7c)       lwsync
 .*:    (7c 40 04 ac|ac 04 40 7c)       ptesync
 .*:    (7c 40 04 ac|ac 04 40 7c)       ptesync
+.*:    (7e 80 30 28|28 30 80 7e)       lwarx   r20,0,r6
+.*:    (7e 81 30 28|28 30 81 7e)       lwarx   r20,r1,r6
+.*:    (7e a0 38 a8|a8 38 a0 7e)       ldarx   r21,0,r7
+.*:    (7e a1 38 a8|a8 38 a1 7e)       ldarx   r21,r1,r7
+.*:    (7e c0 41 2d|2d 41 c0 7e)       stwcx\.  r22,0,r8
+.*:    (7e c1 41 2d|2d 41 c1 7e)       stwcx\.  r22,r1,r8
+.*:    (7e e0 49 ad|ad 49 e0 7e)       stdcx\.  r23,0,r9
+.*:    (7e e1 49 ad|ad 49 e1 7e)       stdcx\.  r23,r1,r9
+#pass
index 583284cce2f2d2abc95bcbbed2e1b064de0ef9a1..b2ede93c3b35ab3c1a3bc84e370f5a7708cd63ec 100644 (file)
@@ -79,6 +79,14 @@ dsym1:
        sync    1
        ptesync
        sync    2
+       lwarx   20,0,6
+       lwarx   20,1,6
+       ldarx   21,0,7
+       ldarx   21,1,7
+       stwcx.  22,0,8
+       stwcx.  22,1,8
+       stdcx.  23,0,9
+       stdcx.  23,1,9
 
        .section        ".data"
 usym0: .llong  0xcafebabe
index aaa64c849a3e2bf7ef54871d778109fe17d3f0da..5c97ab93740798a4cf99e8417ca7391593551893 100644 (file)
@@ -160,4 +160,36 @@ Disassembly of section \.text:
 .*:    (7d 20 3f 99|99 3f 20 7d)       stxvd2x vs41,0,r7
 .*:    (7d 75 47 98|98 47 75 7d)       stxvd2x vs11,r21,r8
 .*:    (7d 75 47 98|98 47 75 7d)       stxvd2x vs11,r21,r8
+.*:    (7e 80 38 68|68 38 80 7e)       lbarx   r20,0,r7
+.*:    (7e 80 38 68|68 38 80 7e)       lbarx   r20,0,r7
+.*:    (7e 80 38 69|69 38 80 7e)       lbarx   r20,0,r7,1
+.*:    (7e 81 38 68|68 38 81 7e)       lbarx   r20,r1,r7
+.*:    (7e 81 38 68|68 38 81 7e)       lbarx   r20,r1,r7
+.*:    (7e 81 38 69|69 38 81 7e)       lbarx   r20,r1,r7,1
+.*:    (7e a0 40 a8|a8 40 a0 7e)       ldarx   r21,0,r8
+.*:    (7e a0 40 a8|a8 40 a0 7e)       ldarx   r21,0,r8
+.*:    (7e a0 40 a9|a9 40 a0 7e)       ldarx   r21,0,r8,1
+.*:    (7e a1 40 a8|a8 40 a1 7e)       ldarx   r21,r1,r8
+.*:    (7e a1 40 a8|a8 40 a1 7e)       ldarx   r21,r1,r8
+.*:    (7e a1 40 a9|a9 40 a1 7e)       ldarx   r21,r1,r8,1
+.*:    (7e c0 48 e8|e8 48 c0 7e)       lharx   r22,0,r9
+.*:    (7e c0 48 e8|e8 48 c0 7e)       lharx   r22,0,r9
+.*:    (7e c0 48 e9|e9 48 c0 7e)       lharx   r22,0,r9,1
+.*:    (7e c1 48 e8|e8 48 c1 7e)       lharx   r22,r1,r9
+.*:    (7e c1 48 e8|e8 48 c1 7e)       lharx   r22,r1,r9
+.*:    (7e c1 48 e9|e9 48 c1 7e)       lharx   r22,r1,r9,1
+.*:    (7e e0 50 28|28 50 e0 7e)       lwarx   r23,0,r10
+.*:    (7e e0 50 28|28 50 e0 7e)       lwarx   r23,0,r10
+.*:    (7e e0 50 29|29 50 e0 7e)       lwarx   r23,0,r10,1
+.*:    (7e e1 50 28|28 50 e1 7e)       lwarx   r23,r1,r10
+.*:    (7e e1 50 28|28 50 e1 7e)       lwarx   r23,r1,r10
+.*:    (7e e1 50 29|29 50 e1 7e)       lwarx   r23,r1,r10,1
+.*:    (7d 40 3d 6d|6d 3d 40 7d)       stbcx\.  r10,0,r7
+.*:    (7d 41 3d 6d|6d 3d 41 7d)       stbcx\.  r10,r1,r7
+.*:    (7d 60 45 ad|ad 45 60 7d)       sthcx\.  r11,0,r8
+.*:    (7d 61 45 ad|ad 45 61 7d)       sthcx\.  r11,r1,r8
+.*:    (7d 80 49 2d|2d 49 80 7d)       stwcx\.  r12,0,r9
+.*:    (7d 81 49 2d|2d 49 81 7d)       stwcx\.  r12,r1,r9
+.*:    (7d a0 51 ad|ad 51 a0 7d)       stdcx\.  r13,0,r10
+.*:    (7d a1 51 ad|ad 51 a1 7d)       stdcx\.  r13,r1,r10
 #pass
index 0b350eb348a0cb413a68d334efffc4ede19ad259..728caae3161d2cdbbe7ae66da5f5c5c1688df068 100644 (file)
@@ -152,3 +152,35 @@ power8:
        stxvd2x      41,0,7
        stxvx        11,21,8
        stxvd2x      11,21,8
+       lbarx        20,0,7
+       lbarx        20,0,7,0
+       lbarx        20,0,7,1
+       lbarx        20,1,7
+       lbarx        20,1,7,0
+       lbarx        20,1,7,1
+       ldarx        21,0,8
+       ldarx        21,0,8,0
+       ldarx        21,0,8,1
+       ldarx        21,1,8
+       ldarx        21,1,8,0
+       ldarx        21,1,8,1
+       lharx        22,0,9
+       lharx        22,0,9,0
+       lharx        22,0,9,1
+       lharx        22,1,9
+       lharx        22,1,9,0
+       lharx        22,1,9,1
+       lwarx        23,0,10
+       lwarx        23,0,10,0
+       lwarx        23,0,10,1
+       lwarx        23,1,10
+       lwarx        23,1,10,0
+       lwarx        23,1,10,1
+       stbcx.       10,0,7
+       stbcx.       10,1,7
+       sthcx.       11,0,8
+       sthcx.       11,1,8
+       stwcx.       12,0,9
+       stwcx.       12,1,9
+       stdcx.       13,0,10
+       stdcx.       13,1,10
index 592b8b568f2d74fab27059f22acb24247722dd82..4ebd5925c9a48d70e69171f06b8d5c8e98ef4ad5 100644 (file)
@@ -1,3 +1,9 @@
+2016-06-03  Peter Bergner <bergner@vnet.ibm.com>
+
+       PR binutils/20196
+       * ppc-opc.c (powerpc_opcodes <lbarx, lharx, stbcx., sthcx.>): Enable
+       opcodes for E6500.
+
 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR binutis/18386
index d73bca8852a48df49ad3cde3ff2b0d7223d7faab..a5948e50b9794421d5bc9d9a3eac41803a9acfbd 100644 (file)
@@ -4824,7 +4824,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"mfvrd",      X(31,51)|1,     XX1RB_MASK|1, PPCVSX2,  PPCNONE,        {RA, VS}},
 {"eratilx",    X(31,51),       X_MASK,      PPCA2,     PPCNONE,        {ERAT_T, RA, RB}},
 
-{"lbarx",      X(31,52),       XEH_MASK,    POWER8|PPCVLE, PPCNONE,    {RT, RA0, RB, EH}},
+{"lbarx",      X(31,52),       XEH_MASK,    POWER8|E6500|PPCVLE, PPCNONE, {RT, RA0, RB, EH}},
 
 {"ldux",       X(31,53),       X_MASK,      PPC64|PPCVLE, PPCNONE,     {RT, RAL, RB}},
 
@@ -4904,7 +4904,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"mfvrwz",     X(31,115)|1,    XX1RB_MASK|1, PPCVSX2,  PPCNONE,        {RA, VS}},
 {"mfvsrwz",    X(31,115),      XX1RB_MASK,   PPCVSX2,  PPCNONE,        {RA, XS6}},
 
-{"lharx",      X(31,116),      XEH_MASK,    POWER8|PPCVLE, PPCNONE,    {RT, RA0, RB, EH}},
+{"lharx",      X(31,116),      XEH_MASK,    POWER8|E6500|PPCVLE, PPCNONE, {RT, RA0, RB, EH}},
 
 {"clf",                X(31,118),      XTO_MASK,    POWER,     PPCNONE,        {RA, RB}},
 
@@ -5954,7 +5954,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"tendall.",   XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, PPCNONE,   {0}},
 {"tend.",      XRC(31,686,1), XRTARARB_MASK, PPCHTM,   PPCNONE,        {HTM_A}},
 
-{"stbcx.",     XRC(31,694,1),  X_MASK,      POWER8,    PPCNONE,        {RS, RA0, RB}},
+{"stbcx.",     XRC(31,694,1),  X_MASK,      POWER8|E6500, PPCNONE,     {RS, RA0, RB}},
 
 {"stfsux",     X(31,695),      X_MASK,      COM,       PPCEFS,         {FRS, RAS, RB}},
 
@@ -5986,7 +5986,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"stswi",      X(31,725),      X_MASK, PPCCOM|PPCVLE,  E500|E500MC,    {RS, RA0, NB}},
 {"stsi",       X(31,725),      X_MASK,      PWRCOM,    PPCNONE,        {RS, RA0, NB}},
 
-{"sthcx.",     XRC(31,726,1),  X_MASK,      POWER8,    PPCNONE,        {RS, RA0, RB}},
+{"sthcx.",     XRC(31,726,1),  X_MASK,      POWER8|E6500, PPCNONE,     {RS, RA0, RB}},
 
 {"stfdx",      X(31,727),      X_MASK,      COM,       PPCEFS,         {FRS, RA0, RB}},