From b5d3ac25628b1a16409a9816623c34a45377d400 Mon Sep 17 00:00:00 2001 From: Peter Bergner Date: Wed, 8 Mar 2017 20:49:03 -0600 Subject: 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) : Do not use PPC_OPCODE_ALTIVEC2; : Do not use PPC_OPCODE_VSX3; gas/ * testsuite/gas/ppc/altivec2.d (as): Use the -mpower8 option. (objdump): Use the -Mpower8 option. --- gas/ChangeLog | 5 +++++ gas/testsuite/gas/ppc/altivec2.d | 4 ++-- opcodes/ChangeLog | 5 +++++ opcodes/ppc-dis.c | 4 ++-- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 9ee8598..a786f29 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2017-03-08 Peter Bergner + + * testsuite/gas/ppc/altivec2.d (as): Use the -mpower8 option. + (objdump): Use the -Mpower8 option. + 2017-03-09 Alan Modra Apply from master 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 9cd7249..e5917d4 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,10 @@ 2017-03-08 Peter Bergner + * ppc-dis.c (ppc_opts) : Do not use PPC_OPCODE_ALTIVEC2; + : Do not use PPC_OPCODE_VSX3; + +2017-03-08 Peter Bergner + Apply from master. 2017-03-08 Peter Bergner * ppc-opc.c (powerpc_opcodes) : New extended mnemonic. diff --git a/opcodes/ppc-dis.c b/opcodes/ppc-dis.c index 77a2a60..e7a59b3 100644 --- a/opcodes/ppc-dis.c +++ b/opcodes/ppc-dis.c @@ -93,7 +93,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, @@ -216,7 +216,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 }, }; -- cgit v1.1