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.
This commit is contained in:
Peter Bergner 2017-03-08 20:49:03 -06:00
parent c7341d5a6b
commit 4b8b687e88
4 changed files with 14 additions and 4 deletions

View 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.

View File

@ -1,5 +1,5 @@
#as: -maltivec
#objdump: -dr -Maltivec
#as: -mpower8
#objdump: -dr -Mpower8
#name: Altivec ISA 2.07 instructions
.*

View 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.

View 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 },
};