opcodes/
authorPeter Bergner <bergner@vnet.ibm.com>
Thu, 15 Jan 2009 04:27:28 +0000 (04:27 +0000)
committerPeter Bergner <bergner@vnet.ibm.com>
Thu, 15 Jan 2009 04:27:28 +0000 (04:27 +0000)
* ppc-dis.c (print_insn_powerpc): Skip insn if it is deprecated.
* ppc-opc.c (powerpc_opcodes) <mtfsf, mtfsf.>: Deprecate the two
operand form and enable the four operand form for POWER6 and later.
<mtfsfi, mtfsfi.>: Deprecate the two operand form and enable the
three operand form for POWER6 and later.

gas/testsuite/
* gas/ppc/power6.s ("mtfsf", "mtfsf.", "mtfsfi", "mtfsfi."): Add tests.
* gas/ppc/power6.d: Likewise.

gas/testsuite/ChangeLog
gas/testsuite/gas/ppc/power6.d
gas/testsuite/gas/ppc/power6.s
opcodes/ChangeLog
opcodes/ppc-dis.c
opcodes/ppc-opc.c

index b468eca589717d911930865d3158527ef3f6a2e0..eddb6994db35e4c54acc369ed07bec670771ebad 100644 (file)
@@ -1,3 +1,8 @@
+2009-01-14  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * gas/ppc/power6.s ("mtfsf", "mtfsf.", "mtfsfi", "mtfsfi."): Add tests.
+       * gas/ppc/power6.d: Likewise.
+
 2009-01-12  H.J. Lu  <hongjiu.lu@intel.com>
 
        * gas/i386/sse-noavx.s: Add tests for lfence, mfence and movnti.
index d35a827c1b7204d3510f65feed054fce2bfe632f..3fef44d4dc5a41018dee159ed4d3469da936d8b8 100644 (file)
@@ -52,3 +52,17 @@ Disassembly of section \.text:
   a8:  7c 01 17 ec     dcbz    r1,r2
   ac:  7c 23 27 ec     dcbzl   r3,r4
   b0:  7c 05 37 ec     dcbz    r5,r6
+  b4:  fc 0c 55 8e     mtfsf   6,f10
+  b8:  fc 0c 5d 8f     mtfsf.  6,f11
+  bc:  fc 0c 55 8e     mtfsf   6,f10
+  c0:  fc 0c 5d 8f     mtfsf.  6,f11
+  c4:  fc 0d 55 8e     mtfsf   6,f10,0,1
+  c8:  fc 0d 5d 8f     mtfsf.  6,f11,0,1
+  cc:  fe 0c 55 8e     mtfsf   6,f10,1,0
+  d0:  fe 0c 5d 8f     mtfsf.  6,f11,1,0
+  d4:  ff 00 01 0c     mtfsfi  6,0
+  d8:  ff 00 f1 0d     mtfsfi. 6,15
+  dc:  ff 00 01 0c     mtfsfi  6,0
+  e0:  ff 00 f1 0d     mtfsfi. 6,15
+  e4:  ff 01 01 0c     mtfsfi  6,0,1
+  e8:  ff 01 f1 0d     mtfsfi. 6,15,1
index c84488abcfbef4d4fe6289b573b6e6037f9d79bd..9b3444a1753617ac4771b216ba57e92b4bc489fe 100644 (file)
@@ -47,3 +47,17 @@ start:
        dcbz    1, 2
        dcbzl   3, 4
        dcbz    5, 6
+       mtfsf   6,10
+       mtfsf.  6,11
+       mtfsf   6,10,0,0
+       mtfsf.  6,11,0,0
+       mtfsf   6,10,0,1
+       mtfsf.  6,11,0,1
+       mtfsf   6,10,1,0
+       mtfsf.  6,11,1,0
+       mtfsfi  6,0
+       mtfsfi. 6,15
+       mtfsfi  6,0,0
+       mtfsfi. 6,15,0
+       mtfsfi  6,0,1
+       mtfsfi. 6,15,1
index 1d50cc1b0aa0a1c183acf100eb091e8718e831ba..df43357ea7f4e0ce5339f155abd10c037a7242be 100644 (file)
@@ -1,3 +1,11 @@
+2009-01-14  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * ppc-dis.c (print_insn_powerpc): Skip insn if it is deprecated.
+       * ppc-opc.c (powerpc_opcodes) <mtfsf, mtfsf.>: Deprecate the two
+       operand form and enable the four operand form for POWER6 and later.
+       <mtfsfi, mtfsfi.>: Deprecate the two operand form and enable the
+       three operand form for POWER6 and later.
+
 2009-01-14  Mike Frysinger  <vapier@gentoo.org>
 
        * bfin-dis.c (OUTS): Use "%s" as format string.
index 061aa84e3b5f1b417cbbce0fd389942d7ca6e6c2..88c4fe7773858d3734fca60f4297f0e404b148a4 100644 (file)
@@ -266,7 +266,8 @@ print_insn_powerpc (bfd_vma memaddr,
        continue;
 
       if ((insn & opcode->mask) != opcode->opcode
-         || (opcode->flags & dialect) == 0)
+         || (opcode->flags & dialect) == 0
+         || (opcode->deprecated & dialect) != 0)
        continue;
 
       /* Make two passes over the operands.  First see if any of them
index 3ec8fed3ae86f34637dfd7cd45ce072f6f9b3616..511fd81a77ec182851b4b4c09b7a03e31ce5fb6b 100644 (file)
@@ -4887,8 +4887,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 
 {"dcmpoq",     X(63,130),      X_MASK,      POWER6,    PPCNONE,        {BF, FRA, FRB}},
 
-{"mtfsfi",  XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), COM, PPCNONE,    {BFF, U, W}},
-{"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), COM, PPCNONE,    {BFF, U, W}},
+{"mtfsfi",  XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6,      {BFF, U}},
+{"mtfsfi",  XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6, PPCNONE, {BFF, U, W}},
+{"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6,      {BFF, U}},
+{"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6, PPCNONE, {BFF, U, W}},
 
 {"fnabs",      XRC(63,136,0),  XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
 {"fnabs.",     XRC(63,136,1),  XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
@@ -4937,8 +4939,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 
 {"dtstsfq",    X(63,674),      X_MASK,      POWER6,    PPCNONE,        {BF, FRA, FRB}},
 
-{"mtfsf",      XFL(63,711,0),  XFL_MASK,    COM,       PPCNONE,        {FLM, FRB, XFL_L, W}},
-{"mtfsf.",     XFL(63,711,1),  XFL_MASK,    COM,       PPCNONE,        {FLM, FRB, XFL_L, W}},
+{"mtfsf",      XFL(63,711,0),  XFL_MASK,    COM,       POWER6,         {FLM, FRB}},
+{"mtfsf",      XFL(63,711,0),  XFL_MASK,    POWER6,    PPCNONE,        {FLM, FRB, XFL_L, W}},
+{"mtfsf.",     XFL(63,711,1),  XFL_MASK,    COM,       POWER6,         {FLM, FRB}},
+{"mtfsf.",     XFL(63,711,1),  XFL_MASK,    POWER6,    PPCNONE,        {FLM, FRB, XFL_L, W}},
 
 {"drdpq",      XRC(63,770,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
 {"drdpq.",     XRC(63,770,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},