]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Add hwsync extended mnemonic.
authorPeter Bergner <bergner@vnet.ibm.com>
Fri, 5 Jun 2015 01:27:03 +0000 (20:27 -0500)
committerPeter Bergner <bergner@vnet.ibm.com>
Fri, 5 Jun 2015 01:27:03 +0000 (20:27 -0500)
This commit adds a new extended menmonic for "sync 0" (same as "sync").
The ISA documentation doesn't explicitly mention hwsync as an extended
mnemonic (yet), but it does mention "heavyweight sync" and "hwsync" as
the operation that gets performed when the sync's L field is 0.
This is only enabled for POWER4 and later.

opcodes/
* ppc-opc.c: (powerpc_opcodes) <hwsync>: New extended mnemonic.

gas/testsuite/
* gas/ppc/a2.d: Fixup test case due to new extended mnemonic.
* gas/ppc/power4.s <hwsync, lwsync, ptesync, sync>: Add tests.
* gas/ppc/power4.d: Likewise.

gas/testsuite/gas/ppc/a2.d
gas/testsuite/gas/ppc/power4.d
gas/testsuite/gas/ppc/power4.s
opcodes/ppc-opc.c

index 700c66578d37f78d522e50a9f71f0a029874c381..aa05cbca5f2476716dc852d4661f00b6ad58dfc9 100644 (file)
@@ -544,9 +544,9 @@ Disassembly of section \.text:
  810:  (7e 95 01 90|90 01 95 7e)       subfze  r20,r21
  814:  (7e 95 05 91|91 05 95 7e)       subfzeo\. r20,r21
  818:  (7e 95 05 90|90 05 95 7e)       subfzeo r20,r21
- 81c:  (7c 00 04 ac|ac 04 00 7c)       sync    
- 820:  (7c 00 04 ac|ac 04 00 7c)       sync    
- 824:  (7c 00 04 ac|ac 04 00 7c)       sync    
+ 81c:  (7c 00 04 ac|ac 04 00 7c)       hwsync
+ 820:  (7c 00 04 ac|ac 04 00 7c)       hwsync
+ 824:  (7c 00 04 ac|ac 04 00 7c)       hwsync
  828:  (7c 20 04 ac|ac 04 20 7c)       lwsync
  82c:  (7c aa 58 88|88 58 aa 7c)       tdlge   r10,r11
  830:  (08 aa 00 64|64 00 aa 08)       tdlgei  r10,100
index cd712458b0f123aac6f79a8f0258f5a50350a456..8a09c0563bb1a6995d18533da265c521eb198de0 100644 (file)
@@ -10,7 +10,7 @@ start address 0x0+
 
 Sections:
 Idx Name +Size +VMA +LMA +File off +Algn
- +0 \.text +0+cc +0+ +0+ +.*
+ +0 \.text +0+e8 +0+ +0+ +.*
  +CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
  +1 \.data +0+20 +0+ +0+ +.*
  +CONTENTS, ALLOC, LOAD, DATA
@@ -99,3 +99,10 @@ Disassembly of section \.text:
 .*:    (f8 05 00 12|12 00 05 f8)       stq     r0,16\(r5\)
 .*:    (f8 45 00 12|12 00 45 f8)       stq     r2,16\(r5\)
 .*:    (7c 00 03 e4|e4 03 00 7c)       slbia
+.*:    (7c 00 04 ac|ac 04 00 7c)       hwsync
+.*:    (7c 00 04 ac|ac 04 00 7c)       hwsync
+.*:    (7c 00 04 ac|ac 04 00 7c)       hwsync
+.*:    (7c 20 04 ac|ac 04 20 7c)       lwsync
+.*:    (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
index 49423a170f3ed71d985d539dd9a6b73f2afcb2cf..583284cce2f2d2abc95bcbbed2e1b064de0ef9a1 100644 (file)
@@ -72,6 +72,13 @@ dsym1:
        stq 0,16(5)
        stq 2,16(5)
        slbia
+       hwsync
+       sync
+       sync    0
+       lwsync
+       sync    1
+       ptesync
+       sync    2
 
        .section        ".data"
 usym0: .llong  0xcafebabe
index 57a097389f152580964cca49aeb165bef7bf4913..8f0ee04ce941b744c491dab35efb85bd9dc285e4 100644 (file)
@@ -5465,6 +5465,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"lswi",       X(31,597),      X_MASK,  PPCCOM|PPCVLE, E500|E500MC,    {RT, RAX, NBI}},
 {"lsi",                X(31,597),      X_MASK,      PWRCOM,    PPCNONE,        {RT, RA0, NB}},
 
+{"hwsync",     XSYNC(31,598,0), 0xffffffff, POWER4,    BOOKE|PPC476,   {0}},
 {"lwsync",     XSYNC(31,598,1), 0xffffffff, PPC,       E500,           {0}},
 {"ptesync",    XSYNC(31,598,2), 0xffffffff, PPC64,     PPCNONE,        {0}},
 {"sync",       X(31,598),      XSYNCLE_MASK,E6500,     PPCNONE,        {LS, ESYNC}},