Update -maltivec and -mvsx options to only enable their oldest instructions.
authorPeter Bergner <bergner@vnet.ibm.com>
Thu, 9 Mar 2017 02:49:03 +0000 (20:49 -0600)
committerPeter Bergner <bergner@vnet.ibm.com>
Thu, 9 Mar 2017 02:49:03 +0000 (20:49 -0600)
Currently, the -maltivec and -mvsx GAS options enable *all* of the altivec
and vsx instructions respecitively that have ever been added.  This is in
constract to GCC's -maltivec and -mvsx options, which only enable the oldest
(ie, first) set of altivec and vsx instructions.  This patch changes GAS to
mimic GCC's behaviour with respect to -maltivec and -mvsx and it solves a
problem with trying to assemble the lxvx instruction which is different
between POWER8 and POWER9.

opcodes/
* ppc-dis.c (ppc_opts) <altivec>: Do not use PPC_OPCODE_ALTIVEC2;
<vsx>: Do not use PPC_OPCODE_VSX3;

gas/
* testsuite/gas/ppc/altivec2.d (as): Use the -mpower8 option.
(objdump): Use the -Mpower8 option.

gas/ChangeLog
gas/testsuite/gas/ppc/altivec2.d
opcodes/ChangeLog
opcodes/ppc-dis.c

index f5a4bf7d0f1fd8e7357c0e9a56e65802d9fbba28..4504fdb42ec8a9090f2a3f87de6a6e2ed2defa91 100644 (file)
@@ -1,3 +1,8 @@
+2017-03-08  Peter Bergner <bergner@vnet.ibm.com>
+
+       * testsuite/gas/ppc/altivec2.d (as): Use the -mpower8 option.
+       (objdump): Use the -Mpower8 option.
+
 2017-03-08  Peter Bergner <bergner@vnet.ibm.com>
 
        * testsuite/gas/ppc/power9.d <lnia> New test.
index fc10fb5a2e4f60ea9228fe7da4fb5e91d84612ff..26f9afa9a8c782f138a2ef2a45db73c6487d3d13 100644 (file)
@@ -1,5 +1,5 @@
-#as: -maltivec
-#objdump: -dr -Maltivec
+#as: -mpower8
+#objdump: -dr -Mpower8
 #name: Altivec ISA 2.07 instructions
 
 .*
index 3a4df13adb64ef41469ba4f1f323cf51b99388a0..52b6a9208e773144dd4f882edb7aa29b9a63b6cf 100644 (file)
@@ -1,3 +1,8 @@
+2017-03-08  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * ppc-dis.c (ppc_opts) <altivec>: Do not use PPC_OPCODE_ALTIVEC2;
+       <vsx>: Do not use PPC_OPCODE_VSX3;
+
 2017-03-08  Peter Bergner  <bergner@vnet.ibm.com>
 
        * ppc-opc.c (powerpc_opcodes) <lnia>: New extended mnemonic.
index 3f8aef811483ed4859a34b5535a0ea295edf2418..ca50689b0195aeb0552ad8be51ab91db0e84ce67 100644 (file)
@@ -94,7 +94,7 @@ struct ppc_mopt ppc_opts[] = {
                | PPC_OPCODE_A2),
     0 },
   { "altivec", PPC_OPCODE_PPC,
-    PPC_OPCODE_ALTIVEC | PPC_OPCODE_ALTIVEC2 },
+    PPC_OPCODE_ALTIVEC },
   { "any",     0,
     PPC_OPCODE_ANY },
   { "booke",   PPC_OPCODE_PPC | PPC_OPCODE_BOOKE,
@@ -226,7 +226,7 @@ struct ppc_mopt ppc_opts[] = {
                | PPC_OPCODE_E500),
     PPC_OPCODE_VLE },
   { "vsx",     PPC_OPCODE_PPC,
-    PPC_OPCODE_VSX | PPC_OPCODE_VSX3 },
+    PPC_OPCODE_VSX },
   { "htm",     PPC_OPCODE_PPC,
     PPC_OPCODE_HTM },
 };