aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Bergner <bergner@vnet.ibm.com>2017-03-08 20:49:03 -0600
committerPeter Bergner <bergner@vnet.ibm.com>2017-03-08 20:49:03 -0600
commit4b8b687e885287ed85dafffcebbb8d03d7ea2c38 (patch)
treecc1edeea45fd4481f8f06b7c5343c81cd55f3c5a
parentc7341d5a6b334464d84672229d9912d99347db34 (diff)
downloadgdb-4b8b687e885287ed85dafffcebbb8d03d7ea2c38.zip
gdb-4b8b687e885287ed85dafffcebbb8d03d7ea2c38.tar.gz
gdb-4b8b687e885287ed85dafffcebbb8d03d7ea2c38.tar.bz2
Update -maltivec and -mvsx options to only enable their oldest instructions.
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.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/testsuite/gas/ppc/altivec2.d4
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/ppc-dis.c4
4 files changed, 14 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f5a4bf7..4504fdb 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
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.
* testsuite/gas/ppc/power9.s: Likewise.
diff --git a/gas/testsuite/gas/ppc/altivec2.d b/gas/testsuite/gas/ppc/altivec2.d
index fc10fb5..26f9afa 100644
--- a/gas/testsuite/gas/ppc/altivec2.d
+++ b/gas/testsuite/gas/ppc/altivec2.d
@@ -1,5 +1,5 @@
-#as: -maltivec
-#objdump: -dr -Maltivec
+#as: -mpower8
+#objdump: -dr -Mpower8
#name: Altivec ISA 2.07 instructions
.*
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 3a4df13..52b6a92 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,10 @@
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.
2017-03-06 H.J. Lu <hongjiu.lu@intel.com>
diff --git a/opcodes/ppc-dis.c b/opcodes/ppc-dis.c
index 3f8aef8..ca50689 100644
--- a/opcodes/ppc-dis.c
+++ b/opcodes/ppc-dis.c
@@ -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 },
};